Зачем мне комментировать тег <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.