Je suis pratiquement sûr que <![CDATA[...]]>
sections peuvent être utilisées en XHTML5, mais qu'en est-il de HTML5?
Réponses
Trop de publicités?L' CDATA
de la structure n'est pas vraiment pour HTML, XML.
Parfois, les gens les utiliser en HTML à l'intérieur d' script
balises, car elle élimine la nécessité pour eux de s'échapper certains caractères spéciaux. C'est pas une exigence, mais (pour le HTML 4 ou 5).
Edit: C'est là que nous avons ouvert ce vraiment moisi vieille boîte de pandore à partir de 2002, plus de que vous envoyez XHTML text/html
ou application/xhtml+xml
comme vous êtes "censés": -)
À partir de la même page @pst lié à:
Élément d'analyse spécifique pour
script
etstyle
tags, des Conseils pour XHTML-HTML compatibilité: "Le code suivant à l'échappement peut s'assurer de script et des éléments de style qui va travailler dans les deux XHTML et HTML, y compris les navigateurs plus anciens."
Une rétro compatibilité Maximum:
<script type="text/javascript"><!--//--><![CDATA[//><!--
...
//--><!]]></script>
Version plus simple, en quelque sorte incompatible avec "beaucoup de navigateurs plus anciens":
<script>//<![CDATA[
...
//]]></script>
Donc, CDATA
peut être utilisé en HTML5, et il est recommandé dans les Directives de XHTML-HTML compatibilité. Cette utile pour polyglotte HTML/XML/XHTML pages, qui sont créés et analysée comme XML en cours de développement, mais a servi comme HTML5 pour une meilleure compatibilité inter-navigateur. Polyglotte pages a ses avantages, et je l'ai utilisé moi-même, car il est beaucoup plus facile à déboguer XML/XHTML5. Google Chrome, par exemple, provoquera une erreur pour XML non valide/XHTML5 (y compris par exemple le caractère d'échappement), alors que la même page que le HTML5 "fonctionnera" aka "probablement".
La spec semble claire à cette question. le script et les balises de style sont considérés comme des "brutes des éléments de texte." CDATA n'est pas nécessaire ou permis pour eux. CDATA est utilisé uniquement avec les "contenus étrangers" - c'est à dire MathML et SVG. Notez qu'il existe des limites à ce qui peut se passer dans la balise script -- en fait, vous ne pouvez pas mettre quelque chose comme var x = '</script>'
là parce qu'il va fermer la balise et doit être divisé comme pst a noté dans sa réponse. http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictions