Имеет ли смысл использовать комментарии HTML к блокам JavaScript? - PullRequest
66 голосов
/ 15 октября 2008

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

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

Edit: есть одна ситуация, с которой я столкнулся. Некоторые редакторы кода, такие как Dreamweaver, попадают в замешательство цитируемого HTML-кода внутри строки JavaScript в «режиме конструктора» и пытаются отобразить его как часть вашей страницы.

Ответы [ 5 ]

72 голосов
/ 15 октября 2008

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

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

20 голосов
/ 15 октября 2008

Больше нет веских причин для этого, так как браузеры, которые требовали этого, вообще исчезли из Интернета.

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

  • Mozilla 1.1 + / Opera 7

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

  • Netscape 7.0x / Mozilla 1.0.x

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

  • Internet Explorer 5.5 +

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

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

14 голосов
/ 16 октября 2008

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

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

/* ]]> */
</script>

Потому что, если в вашем коде есть символы «<», «>», «&» и т. Д., Код не будет проверен:)

11 голосов
/ 24 марта 2009

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

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

-->

следует читать

//-->

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

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

1 голос
/ 30 октября 2008

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

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

//]]>
</script>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...