Имеет ли смысл использовать 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>
Возможно, эти два эквивалента? Кто-нибудь знает, есть ли преимущество над другим?