83 votes

Devrais-je utiliser <![CDATA[...]]> en HTML5?

Je suis pratiquement sûr que <![CDATA[...]]> sections peuvent être utilisées en XHTML5, mais qu'en est-il de HTML5?

59voto

hollsk Points 2047

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": -)

25voto

Joel Purra Points 7366

À partir de la même page @pst lié à:

Élément d'analyse spécifique pour script et style 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".

17voto

rmarscher Points 2542

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X