Что такое CDATA в HTML? [дубликат]
этот вопрос уже есть ответ здесь:
- когда раздел CDATA необходим в теге скрипта? 15 ответов
что такое использование CDATA внутри тегов JavaScript и HTML?
<script type="text/javascript">
// <![CDATA[
// ]]>
</script>
6 ответов:
весь текст в XML-документе будет проанализирован анализатором.
но текст внутри раздела CDATA, будет проигнорировано парсером.
CDATA - (Unparsed) символьные данные
термин CDATA используется в отношении текстовых данных, которые не должны анализироваться анализатором XML.
символы типа "
"
"& " генерирует ошибку, потому что синтаксический анализатор интерпретирует ее как начало символьной сущности.
Некоторый текст, например код JavaScript, содержит много символов "
все, что находится внутри раздела CDATA, игнорируется интерпретатором.
раздел CDATA начинается с "
<![CDATA[
" и заканчивается "]]>
"использование CDATA в выводе программы
разделы CDATA в документах XHTML могут быть проанализированы по-разному веб-браузерами, если они отображают документ как HTML, поскольку синтаксические анализаторы HTML не распознают начальные и конечные маркеры CDATA, а также не распознают ссылки на сущности HTML, такие как
<
внутри<script>
теги. Это может вызвать проблемы с отображением в веб-браузерах и привести к уязвимости межсайтовых сценариев, если они используются для отображения данных из ненадежных источников, так как два вида парсеров будут расходиться в том, где заканчивается раздел CDATA.см. также запись Википедии на CDATA.
CDATA
не имеет никакого значения вообще в HTML.
CDATA
- это XML-конструкция, которая задает содержимое тега, которое обычно является # PCDATA - анализируемыми символьными данными, вместо этого принимается как #CDATA, то есть не анализируемые символьные данные. Это только актуально и допустимо в XHTML.он используется в
script
теги, чтобы избежать парсинга<
и&
. В HTML это не нужно, потому что в HTML,script
уже #CDATA.
от http://en.wikipedia.org/wiki/CDATA:
Так как полезно иметь возможность использовать знаки меньше-чем (
<script type="text/javascript"> //<![CDATA[ document.write("<"); //]]> </script>
CDATA-это устаревший.
поэтому не используйте его в HTML 5.
https://developer.mozilla.org/en-US/docs/Web/API/CDATASection
способ написать общее подмножество HTML и XHTML, в надежде на улучшение переносимости.
в HTML
<script>
это магия ускользает все, пока</script>
появляется.вы можете написать так:
<script>x = '<br/>';
и
<br/>
не является тегом.вот почему строки, такие как:
x = '</scripts>'
должен быть экранирован, как:
x = '</scri' + 'pts>'
посмотреть: зачем разбивать тег
но XML (и, следовательно, XHTML, который является "подмножеством" XML,в отличие от HTML), не имеет этой магии:
<br/>
будет воспринят как тэг.
<![CDATA[
это XHTML способ сказать:не разбирайте теги до следующего
]]>
, считайте все это строкойThe
//
добавляется, чтобы сделать CDATA хорошо работать в HTML, а также.в HTML
<![CDATA[
- это не магия, так он будет работать на JavaScript. Так что//
используется, чтобы прокомментировать его.XHTML также видит
//
, но будет наблюдать его как пустую строку комментария, которая не является проблемой://
что сказал:
- совместимые браузеры должны распознавать, является ли документ HTML или XHTML из исходного doctype
<!DOCTYPE html>
vs<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
- совместимые веб-сайты могут полагаться на совместимые браузеры и координировать doctype с одним допустимым
script
синтаксисно это нарушает золотое правило интернета:
не доверяйте третьим лицам, или ваш продукт сломается
CDATA представляет собой последовательность символов из набора символов документа и может включать в себя символьные сущности. Агенты пользователей должны интерпретировать значения атрибутов следующим образом: Замените символьные сущности символами,
игнорировать переводы строк,
замените каждый возврат каретки или вкладку одним пробелом.