2011-08-01 13 views
7

Przyszło mi przez ten fragment kodu HTML & ku mojemu zaskoczeniu Obiekt jQuery został utworzony!Ładowanie skryptu poza dokumentem html

<!doctype html> 
<body> 
<h1>Hello World</h1> 
</body> 
</html> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script> 

Jak można zauważyć <script> tag przychodzi po zamykania </html> tag. Zastanawiam się, dlaczego to działa?

+2

Przeglądarki są bardzo odporne na błędy. Muszą być, możesz mieć szczęście, aby znaleźć jedną ściśle zgodną ze standardami stronę w Internecie. – JJJ

+0

wypróbuj kod na ie6 lub 7 i zobacz wynik: p – Awea

Odpowiedz

4

Działa, ponieważ przeglądarki są bardzo wyrozumiałe, nie ma korzyści z robienia tego w ten sposób.

Powodem jest to tam, to prawdopodobnie dlatego, że ktoś zrozumiał, co się rozumie przez „wprowadzenie skryptów jak daleko w dół strony, jak to możliwe” ...

+1

Co to jest wpływ na zdarzenie DomContentLoaded, gdy JS jest umieszczony poza HTML. Czy zdarzenie DomContentLoaded jest uruchamiane przed wykonaniem tego javascript? – LionHeart

+0

przegłosowano dla żartu, najlepszą odpowiedzią przeczytałem – iWillGetBetter

3

Jeśli sprawdzisz plik, oznacza to, że jest niepoprawny. Jednak przeglądarki zazwyczaj próbują robić rzeczy w sposób, jaki prawdopodobnie miałeś na myśli.

Przeglądarki po prostu nie są tak surowe. Możesz zrobić wiele rzeczy źle i nadal będą działać.

1

Sprawdziłem ten kod do Firefoksa, scenariusz jest traktowany jako wewnątrz znacznika body dla w tym konkretnym przypadku.

Przeglądarki rzeczywiście są odporne na błędy.

Powiązane problemy