Имеет ли смысл использовать HTML-комментарии к блокам JavaScript?

В прошлом люди использовали для обертывания тегов HTML-комментариев вокруг блоков JavaScript, чтобы предотвратить появление "старых" браузеров script. Даже Lynx достаточно умен, чтобы игнорировать JavaScript, так почему некоторые люди продолжают это делать? Есть ли веские причины в наши дни?

<script type="text/javascript">
<!--
//some js code
//-->
</script>

Изменить: Есть одна ситуация, с которой я столкнулся. Некоторые редакторы кода, такие как Dreamweaver, путаются, цитируя HTML внутри строки JavaScript, когда находятся в "представлении дизайна" и пытаются отобразить его как часть вашей страницы.

Ответ 1

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

Был только очень короткий период, когда это было вообще полезно, и это было около 1996 года.

Ответ 2

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

Фактически, это может привести к непредвиденным проблемам с попытками некоторых старых браузеров интерпретировать страницу, если она использует XHTML - из developer.mozilla.org:

  • Mozilla 1.1 +/Opera 7

    Не применяйте CSS или выполняйте JavaScript.

  • Netscape 7.0x/Mozilla 1.0.x

    Не применяйте CSS, но выполняйте JavaScript.

  • Internet Explorer 5.5 +

    Невозможно отобразить документ.

Этот сайт также ссылается на примеры несколько проблемы упомянутый выше.

Ответ 3

Вы должны использовать CDATA, хотя...

<script type="text/javascript" charset="utf-8">
/* <![CDATA[ */

/* ]]> */
</script>

Потому что, если у вас есть "<", " > ", "&" и т.д. в коде, код не будет проверять:)

Ответ 4

Черт возьми, никто больше этого не нуждается, и если ты это сделаешь, у тебя еще есть проблемы, о которых нужно заботиться. Когда вы действительно хотите поддерживать браузеры, которые в этом нуждаются, вам нужно следить за гораздо большим количеством вещей. Даже не говоря о недостатке css!

Однако большая проблема заключается в том, что люди делают это неправильно. На самом деле ваш пример неверен, потому что строка

-->

должен читать

//-->

во-вторых, вы вводите атрибут "text/JavaScript", что тоже неправильно. Он был "text/javascript" (все строчные буквы), но это устарело (см. IANA List), и теперь это должно быть "application/javascript" (см. еще один список IANA. Однако Дуглас Крокфорд, Гуру JS, сказал, что вам просто нужно его оставить.

Еще одна проблема, о которой никто не упоминал, заключается в следующем: в комментариях HTML "-" не допускается, а это означает, что вы не можете использовать "x--" для уменьшения x на единицу.

Ответ 5

Не использовать CDATA-блоки - одна из причин, по которой я предпочитаю использовать HTML 4.01 Строгий как мой тип docttype, но, Staicu, я думал, что он использовал следующий синтаксис:

<script charset="utf-8">
//<![CDATA[

//]]>
</script>

Возможно, эти два эквивалента? Кто-нибудь знает, есть ли преимущество над другим?