В прошлом люди использовали обертывание тегов комментариев HTML вокруг блоков JavaScript, чтобы предотвратить отображение сценария в «старых» браузерах. Даже Lynx достаточно умен, чтобы игнорировать JavaScript, так почему же некоторые люди продолжают это делать? Есть ли в наши дни какие-то веские причины?
<script type = "text/javascript">
<!--
//some js code
//-->
</script>
Обновлено: есть ОДНА ситуация, с которой я столкнулся. Некоторые редакторы кода, такие как Dreamweaver, путаются, что HTML-код в кавычках внутри строки JavaScript находится в «представлении дизайна» и пытается отобразить его как часть вашей страницы.
--> должен быть //-->.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Нет, абсолютно нет. Любой пользовательский агент, паук поисковой системы или что-либо еще в наши дни достаточно умен, чтобы игнорировать Javascript, если он не может его выполнить.
Был очень короткий период, когда это было хоть сколько-нибудь полезно, и это было примерно в 1996 году.
LOL - виноват! Но потом я научился этому в 1996 году, и никто никогда не говорил иначе ...
Я думаю, что прочитал, что он устарел, но я не могу найти ссылку.
Для этого больше нет веских причин, поскольку браузеры, которым это требовалось, в основном исчезли из Интернета.
Фактически, это может вызвать непреднамеренные проблемы с попытками некоторых старых браузеров интерпретировать страницу, если она использует XHTML - из developer.mozilla.org:
Mozilla 1.1+/Opera 7
Do not apply CSS or execute the JavaScript.
Netscape 7.0x/Mozilla 1.0.x
Do not apply CSS but does execute the JavaScript.
Internet Explorer 5.5+
Can not display the document.
Этот сайт также содержит ссылки на примеры несколькопроблемы, упомянутые выше.
Хотя вы должны использовать CDATA ...
<script type = "text/javascript" charset = "utf-8">
/* <![CDATA[ */
/* ]]> */
</script>
Потому что, если в вашем коде есть '<', '>', '&' и т. д., Код не будет проверяться :)
ЕСЛИ вы хотите быть совместимыми с XHTML, в противном случае вам это не нужно.
Если вы действительно хотите использовать Javascript в правильно сформированных XML-документах, поместите его во внешний файл .js. Например, это требуется для приложений Mozilla XUL.
хех, ответ был в скриптах документа. Конечно, рекомендую все css и jss помещать во внешние файлы :)
+1 - каждый должен стремиться быть совместимым с XHTML, даже если вам придется учитывать некоторые причуды. Существуют различные библиотеки / инструменты для синтаксического анализа XML, которые будут меньше путаться с вашим XHTML, если он пройдет проверку. Давайте не будем превращать XHTML в новый неаккуратный «переходный» HTML.
Допустим, вы хотите разобрать код для различных целей. Если неверно, возможно, у вас все напортачило :)
Вы также можете анализировать HTML; HTML также можно сделать действительным; hixie.ch/advocacy/xhtml;)
Небольшая разница, но лично я предпочитаю использовать //<![CDATA[ и //]]> - просто кажется немного аккуратнее и легче читается.
Атрибут charset указывает кодировку файла, связанного с использованием атрибута src; следовательно, это не требуется, если нет атрибута src. (Фактически, в HTML5 это даже не позволил, если нет атрибута src.)
Отсутствие необходимости использовать блоки CDATA - одна из причин, по которой я предпочитаю использовать HTML 4.01 Strict в качестве своего типа документа, но, Staicu, я подумал, что он использует следующий синтаксис:
<script charset = "utf-8">
//<![CDATA[
//]]>
</script>
Может быть, эти два эквивалента? Кто-нибудь знает, есть ли у одного преимущество перед другим?
// комментарий строки, / * * / комментарий блока. Вы можете использовать любой из них, для javascript он одинаков (прокомментирован). Но вы забыли установить type = "text / javascript"
type = "text / javascript" игнорируется браузерами в пользу типа MIME, отправляемого сервером. Это упущение было намеренным.
Андрей: Я не понимаю. Это сценарий, встроенный в HTML-документ, откуда взялся text/javascript? Кроме того, я не думаю, что вам следует использовать атрибут charset, если нет атрибута src, поскольку атрибут charset указывает кодировку файла, связанного с использованием атрибута src.
Черт, нет, это больше никому не нужно, и если да, то у тебя есть еще проблемы, о которых нужно заботиться. Когда вы действительно хотите поддерживать браузеры, которым это необходимо, вам нужно остерегаться гораздо большего. Даже не говоря об отсутствии css!
Однако большая проблема в том, что люди делают это неправильно. На самом деле ваш пример неверен, потому что строка
-->
должен прочесть
//-->
во-вторых, вы набираете атрибут "текст / JavaScript", что тоже не так. Это был «текст / javascript» (все в нижнем регистре), но он устарел (см. Список IANA) и теперь должен быть «application / javascript» (см. другой список IANA. Однако Дуглас Крокфорд, гуру JS, сказал, что вам просто нужно уйти это из.
Еще одна проблема, о которой еще никто не упоминал, заключается в следующем: в комментариях HTML знак «-» не допускается, а это означает, что вы не можете использовать «x--» для уменьшения x на единицу.
Я предполагаю, что это имеет какое-то отношение к эксперименту Кена Киза младшего «обезьяны / банан / лестница / брызги воды». Люди продолжают это делать, потому что просто видят, как это делается, но никогда не спрашивают, почему.