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