Зачем мне комментировать тег <script>в HTML? - PullRequest
16 голосов
/ 12 декабря 2010

В большинстве примеров, которые я видел, сценарии на html-странице заключены в

<!--
...
-->

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

Ответы [ 4 ]

23 голосов
/ 12 декабря 2010

Это больше не нужно. Это только когда-то служило взломом обратной совместимости - когда скрипты впервые начали вставляться в статические HTML-страницы, большинство браузеров не могли их поддерживать. Без комментариев они игнорировали бы семантику тега <script> (который они не понимали), а затем отправляли исходный код скрипта на страницу.

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

В общем, если вы не хотите поддерживать действительно, действительно старых браузеров (за счет взлома некоторых новых), больше нет необходимости делать это.

8 голосов
/ 12 декабря 2010

Действительно старые браузеры, которые не понимают тег <script>, могут предположить, что это был тег форматирования, который он не понимал. Они изящно потерпят неудачу, отобразив содержимое тега (сценария) на странице.

Путем HTML-комментирования скрипта эти браузеры будут игнорировать контент, а не отображать его.

На практике я сомневаюсь, что какой-либо из этих браузеров все еще используется, и что сейчас вы, вероятно, можете обойтись без комментариев.

7 голосов
/ 12 декабря 2010

Это для некоторых старых браузеров, которые использовались в прошлом веке.

Сегодня они вам больше не нужны, но использование CDATA считается хорошей практикой, если вы пишете XHTML.

0 голосов
/ 28 февраля 2012

В настоящее время все еще существует проблема, если ваша страница обрабатывается анализатором санитарных условий, который выполняет очистку, переписывая тег <script> в <xscriptx>. Если вы оставите в теге комментария, то, если тег сценария будет очищен, то по крайней мере ваш javascript все равно будет скрыт от пользователя тегами комментария. Если вы оставите комментарии, код будет виден.

Примером синтаксического анализатора является Google Translate, Google Cache или Proxomitron.

...