Что такое 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 представляет собой последовательность символов из набора символов документа и может включать в себя символьные сущности. Агенты пользователей должны интерпретировать значения атрибутов следующим образом: Замените символьные сущности символами,
игнорировать переводы строк,
замените каждый возврат каретки или вкладку одним пробелом.