Когда и зачём нужен блок CDATA между тегами скрипта?

Блок CDATA необходим при использовании HTML и XHTML, чтобы указать парсеру, что не надо анализировать то, что находится внутри этого блока. Если не задать эти метки, парсер может воспринять JavaScript-код как XML-данные и посчитать код невалидным и остановить анализ документа. Комментарии перед CDATA ставятся, чтобы не нарушить структуру JavaScript.

Давайте перейдём к примерам. При подключении скриптов в HTML следующий код может вызвать конфликт:

<script>
var x = ''</script>'';
alert(x)
</script>

Как видите, здесь закрывающий тег script используется внутри переменной, что может быть некорректно воспринято парсером.

В XHTML разметке тег script вообще не считается чем-то особенным, он такой же, как и другие теги, в некоторых случаях он даже может содержать дочерние ноды между символами < и >. Поэтому следующий код будет невалидным:

<script>
if (a<b && c<d) {
alert(''Hello!'');
}
</script>

Короче. Если в Вашем JavaScript используются символы & и <, то блок CDATA использовать обязательно. Если нет — можете его опустить.

Для скриптов, которые подключаются через внешние файлы, использовать данный блок нет необходимости.

Похожие вопросы
Добавить ответ
Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Нажимая кнопку «Отправить», я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности этого сайта.