Estoy bastante seguro de que las <![CDATA[...]]>
secciones se pueden usar en XHTML5, pero ¿qué pasa con HTML5?
Estoy bastante seguro de que las <![CDATA[...]]>
secciones se pueden usar en XHTML5, pero ¿qué pasa con HTML5?
Respuestas:
La CDATA
estructura no es realmente para HTML, es para XML.
La gente a veces los usa en HTML dentro de las script
etiquetas porque elimina la necesidad de escapar de ciertos caracteres especiales. Sin embargo, de ninguna manera es un requisito (para HTML 4 o 5).
Editar: Aquí es donde abrimos esa vieja lata de gusanos realmente mohosa de 2002 sobre si estás enviando XHTML como text/html
o como application/xhtml+xml
"se supone" que debes :-)
CDATA
dentro de una pre
etiqueta para no tener que arreglar todos mis soportes angulares?
Desde la misma página @pst vinculada a :
Análisis de elementos específicos para etiquetas
script
ystyle
, Orientación para la compatibilidad con XHTML-HTML : "El siguiente código con escape puede garantizar que los elementos de estilo y script funcionen tanto en XHTML como en HTML, incluidos los navegadores más antiguos".
Máxima compatibilidad con versiones anteriores:
<script type="text/javascript"><!--//--><![CDATA[//><!--
...
//--><!]]></script>
Versión más simple, algo incompatible con "navegadores mucho más antiguos":
<script>//<![CDATA[
...
//]]></script>
Por lo tanto, CDATA
se puede usar en HTML5 y se recomienda en la Guía para la compatibilidad con XHTML-HTML . Esto es útil para páginas HTML / XML / XHTML políglotas , que se crean y analizan como XML durante el desarrollo, pero sirven como HTML5 para una mejor compatibilidad entre navegadores. Las páginas políglotas tienen sus beneficios , y yo mismo he usado esto, ya que es mucho más fácil depurar XML / XHTML5. Google Chrome, por ejemplo, arrojará un error para XML / XHTML5 no válido (incluido, por ejemplo , el escape de caracteres ), mientras que la misma página servida como HTML5 "simplemente funcionará" o "probablemente funcionará".
La especificación parece aclarar este problema. Las etiquetas de estilo y script se consideran "elementos de texto sin formato". CDATA no es necesario ni permitido para ellos. CDATA solo se utiliza con "contenido extranjero", es decir, MathML y SVG. Tenga en cuenta que existen algunas restricciones sobre lo que puede ir en la etiqueta del script; básicamente, no puede poner algo como var x = '</script>'
allí porque cerrará la etiqueta y debe dividirse como pst se indica en su respuesta. http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictions
Quizás vea: http://wiki.whatwg.org/wiki/HTML_vs._XHTML
<! [CDATA [...]]> es un comentario falso.
En HTML, <script>
ya está protegido, por eso a veces debe escribirse como a = "<" + "/script>"
, para evitar confundir al navegador. Tenga en cuenta que el código es válido fuera de un CDATA en HTML.
</
es el único token especial en este contexto. Mis respuestas más recientes sobre el tema coinciden ya que he actualizado mis conocimientos con el tiempo ;-) Actualizaré esto. Dicho esto, parece común tener la división </scr
+ ipt>
, y no sé de un navegador convencional donde no funcione ...