Событие ready и теги script
Вопрос в следующем: DOM считается готовым после того, как отработают все скрипты внутри тегов script или же событие ready может быть сгенерированно до того, как отработаю скрипты из тегов script? Расскажите, пожалуйста, и дайте ссылку, если возможно, почитать на эту тему. Спасибо.
|
Создание DOM приостанавливается на каждом script, в том числе и внешнем. Но это только в случае если у script нет атрибута defer или async.
|
Цитата:
|
Да. Кроме defer|async
|
Цитата:
|
Он отработает позже события $(document).ready |
Deff, с чего ты взял? Кстати, скрипты должны быть либо в head либо в body, других вариантов нет (если в html5 их не узаконили)
|
Цитата:
danik.js, Посмотри рекламу от yandex http://hostjs-mybb2011.narod.ru/Rus_Lat.htm Внизу после </html> Это yandex сам её вставляет. |
Реклама? Еще чего )
<!DOCTYPE html> <html> <head> <title></title> <script src="http://code.jquery.com/jquery-latest.js"></script> <script>$(document).ready(function(){ alert('ready')});</script> <script>alert('script in head');</script> </head> <body> <script>alert('script in body');</script> </body> <script>alert('script after body');</script> </html> <script>alert('script after html');</script> |
danik.js,
Да = уже заметил, - я вставлял на реальную страницу. http://designforum.bestff.ru/ Походу для произвольного случая - соврал _____________ Уточнил про рекламу, пост #8 |
Цитата:
Цитата:
Цитата:
Вобще я не понял о чем ты. |
Затестил. Короче, все браузеры собирают все что за пределами head и body и помещают внутрь body, так что все всегда ок.
|
<!DOCTYPE html> <html> <head> <title></title> <script src="http://code.jquery.com/jquery-latest.js"></script> <script>$(document).ready(function(){ alert('ready')});</script> <script>alert('script in head');</script> </head> <body> <script>alert('script in body');</script> <script type="text/javascript"> try{jQuery.ready();}catch(e){} try{ $(document).ready(function(){alert('ready'); var ac = 0; }); }catch(e){} </script> </body> <script>alert('script after body');</script> </html> <script>alert('script after html');</script> :p |
Ах, если вопрос был в этом, то есть такая штука как document.createEvent, с ее помощью можно любое событие создать программно. Причем, насколько мне известно, в webkit нет возможности отличить событие, созданное через Element.prototype.dispatchEvent от настоящего.
Так что да, любое событие может произойти когда угодно, если этого захотеть. |
Часовой пояс GMT +3, время: 01:57. |