Estoy seguro de que las secciones <![CDATA[...]]>
se pueden usar en XHTML5, pero ¿qué pasa con HTML5?¿Debo usar <! [CDATA [...]]> en HTML5?
Respuesta
La estructura CDATA
no es realmente para HTML en absoluto, es para XML.
Las personas a veces las usan en HTML dentro de las etiquetas script
porque elimina la necesidad de que escapen ciertos caracteres especiales. Sin embargo, no es un requisito (ya sea para HTML 4 o 5).
Editar: Esto es donde abrimos que realmente mohosa vieja lata de gusanos de 2002 sobre si va a enviar como XHTML text/html
o como application/xhtml+xml
como si estuviera “supone” que :-)
Tal vez ver: http://wiki.whatwg.org/wiki/HTML_vs._XHTML
< [CDATA [...]] es un > un comentario falso.
En HTML, <script>
ya está protegido - es por eso que a veces hay que escribir como a = "<" + "/script>"
, para evitar confundir al navegador. Tenga en cuenta que el código es válido fuera de un CDATA en HTML.
Creo que la mejor manera de escapar de la etiqueta final es "<\/script>". He leído que algunos analizadores solo comprueban "", no "" – marcus
@marcus Tiene razón y que '' es el único token especial en este contexto.Mis * nuevas respuestas * sobre el tema coinciden porque mi conocimiento se ha actualizado con el tiempo ;-) Lo actualizaré. Dicho esto, parece común tener la división ' scr' + 'ipt>', y no sé de un * explorador mainstream * donde no funciona ... –
El la especificación parece aclarar este problema. las etiquetas de guiones y estilos se consideran "elementos de texto sin procesar". CDATA no es necesario ni permitido para ellos. CDATA solo se usa con "contenido extranjero", es decir, MathML y SVG. Tenga en cuenta que hay algunas restricciones a lo que puede ir en la etiqueta del script; básicamente, no se puede poner algo como var x = '</script>'
allí porque cerrará la etiqueta y se debe dividir como se indicó en su respuesta. http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictions
De la misma página @pst linked to:
Element-specific parsing for
script
andstyle
tags, Orientación para Valid HTML compatibilidad: "El siguiente código de escape puede garantizar guión y elementos de estilo funcionará tanto en XHTML y HTML, entre otras cosas antiguas navegadores ".
hacia atrás compatibilidad máxima:
<script type="text/javascript"><!--//--><![CDATA[//><!--
...
//--><!]]></script>
más simple versión, más o menos incompatible con "los navegadores mucho mayores":
<script>//<![CDATA[
...
//]]></script>
Así, CDATA
se puede utilizar en HTML 5, y se recomienda en la guía para compatibilidad con XHTML-HTML. Esto es útil para polyglot HTML/XML/XHTML pages, que se crean y analizan como XML durante el desarrollo, pero sirven como HTML5 para una mejor compatibilidad entre navegadores. Polyglot pages has their benefits, y lo he usado yo mismo, ya que es mucho más fácil depurar XML/XHTML5. Google Chrome, por ejemplo, lanzará un error para XML/XHTML5 no válido (que incluye, por ejemplo, character escaping), mientras que la misma página que sirve como HTML5 "simplemente funcionará" o "probablemente funcione".
los comentarios dentro de una etiqueta de secuencia de comandos son necesarios si desea admitir algunos navegadores de 20 años, es decir, NSCA Mosaic o Netscape 1 ... –
- 1. <![CDATA []]>
- 2. ¿Debo abandonar Adobe Flash para HTML5 y <canvas>?
- 3. Cómo analizar XML para <![CDATA[]]>
- 4. Cómo eliminar `// <! [CDATA [` y end `//]]>`?
- 5. ¿Debo usar boost :: ptr_vector <T> o vector <boost :: shared_ptr <T>>?
- 6. ¿Debo usar HTML5 y CSS3?
- 7. que el <!CDATA> en una etiqueta XML
- 8. Sincronización HTML5 <video> con <audio> reproducción
- 9. Javascript y `<> ...</>` etiquetas
- 10. ¿Cuándo debo usar el tipo HashSet <T>?
- 11. Al usar <ui: composition> templating, ¿dónde debo declarar el <f:metadata>?
- 12. HTML5 <audio> etiqueta en Android
- 13. ¿Por qué debo dejar de usar <%= … %> para renderizar y comenzar a usar <%: … %> en Asp.net?
- 14. HTML5 <video> devoluciones de llamada?
- 15. WebView y HTML5 <video>
- 16. Javascript HTML5 <audio> fuente múltiple
- 17. html5 <canvas> tasa de cuadros
- 18. Cómo utilizar HTML5 <canvas> clip()
- 19. En HTML5, ¿el elemento <form> es un elemento de sección, como <section>?
- 20. ¿Debo eliminar el vector <string>?
- 21. XML CDATA Encoding
- 22. ¿Cuándo se deben usar <%# ... %> y <%= ... %>?
- 23. cómo usar>< <= > = como funciones?
- 24. ¿Cómo eliminar el espacio entre <svg> y <td> en HTML5?
- 25. <audio> HTML5/<video> y transcodificación en directo con FFMPEG
- 26. transmisión de audio con etiqueta html5 `<audio>`
- 27. HTML5 <video> etiqueta en Chrome no funciona
- 28. Creando <canvas> editor de texto HTML5 basado en
- 29. Problemas al diseñar elementos semánticos HTML5 como <section>, <nav> y <article>
- 30. ¿Debo exponer IObservable <T> en mis interfaces?
Estoy enviando HTML (no XHTML) y yo quiero eso. Thxs para la respuesta :) –
¿Puedo usar 'CDATA' dentro de una etiqueta' pre' para que no tenga que arreglar todos mis corchetes angulares? – gman