2013-11-22 3 views
-2

На 5-минутной отметке класса Advanced Techniques in JavaScript and jQuery на сегменте традиционных функций JavaScript в PluralSight Кевин Мюррей помещает свой тег сценария после закрытия тега body.Где разместить JavaScript

Можно ли положить скрипты после закрытия тега тела?

+2

Насколько я знаю, голова и тело являются единственными допустимыми дочерними элементами тега html, поэтому это по крайней мере недействительная разметка. – adeneo

+5

http://stackoverflow.com/questions/3037725/is-it-wrong-to-place-the-script-tag-after-the-body-tag – marteljn

+1

^Это. Ответ от AndyE тоже справедлив. –

ответ

1

Вы должны поместить их перед закрытием секции. Таким образом ваш html-код будет загружаться первым, и после этого браузер обработает ваш код javascript. Поэтому, если есть какие-либо ошибки или проблемы с вашим скриптом, загрузка вашей страницы не будет зависеть. Другими словами, ваш html-код загрузится, и если возникнут какие-либо проблемы, ваш js-код не будет работать. С другой стороны, если бы вы включили ваш js-код в раздел главы и возникла какая-либо проблема, тогда ваш html-код даже не загрузится.

+1

Я думаю, вы имеете в виду до закрытия раздела ''. Извините, не пытаясь быть придирчивым, но теперь есть элемент '

'. Просто хотел быть ясным и избегать путаницы. – War10ck

+1

@ War10ck, проблем нет. Да, я имею в виду до закрытия . В нижней части страницы, где нет другого html-кода. – Christos

1

Помещение тега сценария после тега тела не соответствует стандарту HTML, и вряд ли есть какие-либо основания для этого. Тег сценария должен предпочтительно находиться внутри элемента head или внутри элемента body, если у вас есть определенные причины для этого.

Вы можете поместить тег сценария последним в элемент body, а не после него, с небольшой или никакой разницей в функциональности. Все элементы в документе уже существуют в этот момент, поэтому нет нормальной причины выносить его за пределы тела.

Помещение тега сценария вне тела, скорее всего, будет работать во всех браузерах, потому что они обычно стараются рассмотреть любой беспорядок, который вы набрасываете на них, но он не соответствует спецификации, поэтому нет гарантии, что все текущие браузеры на самом деле терпят это, или что все будущие браузеры делают.

Кроме того, существует риск того, что неправильный код, подобный этому, изменит то, как браузер интерпретирует весь документ HTML. Если браузер решает разобрать документ в режиме обратной совместимости, он может иметь радикальные последствия для макета страницы.

Смежные вопросы