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

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

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

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

Я предполагаю, что это имеет какое-то отношение к эксперименту Кена Киза младшего «обезьяны / банан / лестница / брызги воды». Люди продолжают это делать, потому что просто видят, как это делается, но никогда не спрашивают, почему.

Diodeus - James MacFarlane 15.10.2008 21:00

--> должен быть //-->.

Andreas Rejbrand 20.07.2013 02:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
67
2
2 260
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

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

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

LOL - виноват! Но потом я научился этому в 1996 году, и никто никогда не говорил иначе ...

Steven A. Lowe 30.10.2008 22:42

Я думаю, что прочитал, что он устарел, но я не могу найти ссылку.

some 20.11.2008 19:03

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

Фактически, это может вызвать непреднамеренные проблемы с попытками некоторых старых браузеров интерпретировать страницу, если она использует 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, в противном случае вам это не нужно.

Jason Bunting 30.10.2008 22:21

Если вы действительно хотите использовать Javascript в правильно сформированных XML-документах, поместите его во внешний файл .js. Например, это требуется для приложений Mozilla XUL.

MarkR 31.10.2008 00:11

хех, ответ был в скриптах документа. Конечно, рекомендую все css и jss помещать во внешние файлы :)

Ionuț Staicu 02.12.2008 21:49

+1 - каждый должен стремиться быть совместимым с XHTML, даже если вам придется учитывать некоторые причуды. Существуют различные библиотеки / инструменты для синтаксического анализа XML, которые будут меньше путаться с вашим XHTML, если он пройдет проверку. Давайте не будем превращать XHTML в новый неаккуратный «переходный» HTML.

andreialecu 16.09.2009 15:11

Допустим, вы хотите разобрать код для различных целей. Если неверно, возможно, у вас все напортачило :)

Ionuț Staicu 03.01.2010 00:40

Вы также можете анализировать HTML; HTML также можно сделать действительным; hixie.ch/advocacy/xhtml;)

Marcel Korpel 04.05.2010 02:42

Небольшая разница, но лично я предпочитаю использовать //<![CDATA[ и //]]> - просто кажется немного аккуратнее и легче читается.

DisgruntledGoat 10.01.2011 02:53

Атрибут charset указывает кодировку файла, связанного с использованием атрибута src; следовательно, это не требуется, если нет атрибута src. (Фактически, в HTML5 это даже не позволил, если нет атрибута src.)

Andreas Rejbrand 20.07.2013 02:44

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

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

//]]>
</script>

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

// комментарий строки, / * * / комментарий блока. Вы можете использовать любой из них, для javascript он одинаков (прокомментирован). Но вы забыли установить type = "text / javascript"

some 20.11.2008 18:25

type = "text / javascript" игнорируется браузерами в пользу типа MIME, отправляемого сервером. Это упущение было намеренным.

Andrew Hedges 21.09.2009 07:23

Андрей: Я не понимаю. Это сценарий, встроенный в HTML-документ, откуда взялся text/javascript? Кроме того, я не думаю, что вам следует использовать атрибут charset, если нет атрибута src, поскольку атрибут charset указывает кодировку файла, связанного с использованием атрибута src.

Andreas Rejbrand 20.07.2013 02:48

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

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

-->

должен прочесть

//-->

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

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

Другие вопросы по теме