2013-11-25 4 views
0

В начале блока HTML, я нашел это:мне нужна помощь расшифровки этого JavaScript

<body><script type="text/javascript" language="javascript1.2">//<![CDATA[ 
<!-- 
    ...a bunch of if/thens that drive a browser specific line of text... 
//--> 
//]]></script> 

Я смущен, потому что я бы ожидать HTML и JavaScript комментария тегов <!----> и // предотвратить код от запуска, в сущности разбора

<body><script type="text/javascript" language="javascript1.2"></script>

Однако я получаю текст из браузера конкретного отображения и не похоже, чтобы быть в любом другом месте, что это будучи роды Тед. Может ли <![CDATA[ переопределить комментарий javascript, позволяя сценарию запускаться, а комментарии HTML внутри блока CDATA мешают отображать javascript в браузере? Может ли кто-нибудь помочь мне понять, как все это анализируется и отображается/используется?

+0

[Элементы сценария и стиля в XHTML] (http://www.w3.org/TR/xhtml1/#h-4.8) – Givi

+0

[Что означает CDATA в формате XML] (http://stackoverflow.com/a/2784294/1142380) – ToastyMallows

ответ

0

<!-- --> Используется только для комментариев HTML, а не для комментариев javascript. Javascript использует // для однострочных и /* */ для многострочных комментариев. Если вы используете <!-- --> в javascript, это обычно просто игнорируется. Некоторые браузеры могут вызывать на нем ошибку javascript.

0

Во-первых, все JS-код помещается здесь в раздел CDATA (см. Wikipedia). Вот почему есть комментарии //<![CDATA[ и //]]>. Это позволяет писать символы внутри произвольного JS коды, включая символы, которые рассматриваются как специальные символы для XML, как «<», «>» и т.д.

HTML комментарий начало <!-- обозначает начало для одного комментария в JavaScript (см. this article). HTML comment end - --> не имеет смысла в JavaScript, поэтому ему предшествует //.
HTML-комментарии используются здесь, чтобы скрыть код JavaScript из браузеров, которые не поддерживают JavaScript. Для этих браузеров код будет всего лишь текстом между <!-- и --> и не будет отображаться на странице.
Комментирование таким способом - очень старая практика.

В любом случае лучше всего иметь весь код JavaScript в отдельном файле и включить этот файл, используя тег <script>. Таким образом, вы избежите использования как CDATA, так и HTML-комментариев.

Смежные вопросы