Зачем мне комментировать тег <script> в HTML?
В большинстве примеров, которые я видел, скрипты на html-странице заключены в
<!--
...
-->
Я пробовал писать его без тегов комментариев и, похоже, не было никакой разницы. Почему используется тег комментария и какую функцию он выполняет?
Ответы
Ответ 1
Это больше не нужно. Это только когда-либо выполнялось как разная совместимость - когда скрипты впервые вставлялись в статические HTML-страницы, большинство браузеров не могли их поддерживать. Без комментариев они игнорировали бы семантику тега <script>
(который они не понимали), а затем выбрали источник script на странице.
По иронии судьбы, решение было взломом само по себе - AFAIK, ни одна часть спецификации HTML не говорит о том, что теги script следует анализировать, когда внутри комментариев. Тот факт, что все браузеры выбрали это, похоже, скорее совпаден, чем что-либо еще. Конечно, с XHTML комментарии являются комментариями, поэтому у полностью совместимого браузера есть, чтобы игнорировать ваши скрипты.
В принципе, если вы не хотите действительно поддерживать действительно старые браузеры (ценой взлома некоторых новых), вам больше не нужно это делать.
Ответ 2
Действительно старые браузеры, которые не понимают тег <script>
, могут предположить, что это был тег форматирования, который он не понимал. Они изящно терпят неудачу, отображая содержимое тега (script) inline на странице.
По HTML-комментарию script тоже эти браузеры будут игнорировать контент, а не визуализировать его.
На практике я сомневаюсь, что любой из этих браузеров все еще используется и что вы, вероятно, можете уйти без комментариев в настоящее время.
Ответ 3
Это для некоторых старых браузеров, которые использовались в прошлом веке.
Теперь вы больше не нуждаетесь в них, но используя CDATA считается хорошей практикой, если вы пишете XHTML.
Ответ 4
В настоящее время проблема остается, если ваша страница обрабатывается парсером санитарии, который санирует, только переписывая тег <script>
в <xscriptx>
. Если вы оставите в теге комментарий, то если тег script подвергнется санации, то по крайней мере ваш javascript по-прежнему будет скрыт от пользователя по тегам комментариев. Если вы оставите комментарии, код будет виден.
Примером анализатора санитарии является Google Translate, Google Cache или Proxomitron.