Estoy bastante seguro de que las <![CDATA[...]]>
secciones se pueden usar en XHTML5, pero ¿qué pasa con HTML5?
80
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 unapre
etiqueta para no tener que arreglar todos mis soportes angulares?Desde la misma página @pst vinculada a :
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á".fuente
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-restrictionsfuente
Quizás vea: http://wiki.whatwg.org/wiki/HTML_vs._XHTML
En HTML,
<script>
ya está protegido, por eso a veces debe escribirse comoa = "<" + "/script>"
, para evitar confundir al navegador. Tenga en cuenta que el código es válido fuera de un CDATA en HTML.fuente
</
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 ...