Я почти уверен, что <![CDATA[...]]>
разделы можно использовать в XHTML5, но как насчет HTML5?
80
В CDATA
Структура не для HTML вообще, это для XML.
Иногда люди используют их в HTML внутри script
тегов, потому что это избавляет их от необходимости экранировать определенные специальные символы. Однако это ни в коем случае не является требованием (для HTML 4 или 5).
Изменить: здесь мы открываем эту действительно заплесневелую старую банку с червями 2002 года, независимо от того, отправляете ли вы XHTML как text/html
или как application/xhtml+xml
вы «должны» :-)
CDATA
внутриpre
тега, чтобы мне не пришлось поправлять все угловые скобки?С той же страницы @pst связана с :
Максимальная обратная совместимость:
<script type="text/javascript"><!--//--><![CDATA[//><!-- ... //--><!]]></script>
Более простая версия, несовместимая с "гораздо более старыми браузерами":
<script>//<![CDATA[ ... //]]></script>
Таким образом,
CDATA
его можно использовать в HTML5, и это рекомендуется в Руководстве по совместимости XHTML-HTML . Это полезно для многоязычных страниц HTML / XML / XHTML , которые создаются и анализируются как XML во время разработки, но служат HTML5 для лучшей кросс-браузерной совместимости. Страницы полиглотов имеют свои преимущества , и я сам этим пользовался, так как отладить XML / XHTML5 намного проще. Google Chrome, например, выдаст ошибку из-за недопустимого XML / XHTML5 (включая, например, экранирование символов ), тогда как та же страница, которая обслуживается как HTML5, будет «просто работать» или «вероятно, работать».источник
Спецификация, похоже, проясняет эту проблему. теги скриптов и стилей считаются «необработанными текстовыми элементами». CDATA для них не нужен или не разрешен. CDATA используется только с «чужим контентом», то есть MathML и SVG. Обратите внимание, что есть некоторые ограничения на то, что может быть в теге script - в основном вы не можете помещать что-то подобное,
var x = '</script>'
потому что это закроет тег и должно быть разделено, как pst, отмеченный в его ответе. http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictionsисточник
Возможно, см .: http://wiki.whatwg.org/wiki/HTML_vs._XHTML
В HTML
<script>
уже защищен - поэтому иногда его нужно писать какa = "<" + "/script>"
, чтобы не запутать браузер. Обратите внимание, что код действителен вне CDATA в HTML.источник
</
единственный специальный токен в данном контексте. Мои новые ответы на эту тему совпадают, поскольку со временем мои знания обновлялись ;-) Я обновлю это. При этом кажется обычным</scr
ipt>