script que javascript html xhtml cdata

que es cdata javascript



¿Qué es CDATA en HTML? (6)

CDATA es una secuencia de caracteres del conjunto de caracteres del documento y puede incluir entidades de caracteres. Los agentes de usuario deben interpretar los valores de los atributos de la siguiente manera: Reemplazar entidades de caracteres con caracteres,

Ignorar alimentaciones de línea,

Reemplace cada retorno de carro o pestaña con un solo espacio.

Esta pregunta ya tiene una respuesta aquí:

¿Cuál es el uso de CDATA dentro de etiquetas JavaScript y HTML?

<script type="text/javascript"> // <![CDATA[ // ]]> </script>



De http://en.wikipedia.org/wiki/CDATA :

Dado que es útil poder usar signos menores que (<) y símbolos (&) en las secuencias de comandos de la página web y, en menor medida, los estilos, sin tener que recordar escaparse de ellos, es común usar marcadores CDATA en todo el documento. texto de en línea y elementos en documentos XHTML. Pero para que el documento también pueda ser analizado por los analizadores HTML, que no reconocen los marcadores CDATA, los marcadores CDATA generalmente son comentados, como en este ejemplo de JavaScript:

<script type="text/javascript"> //<![CDATA[ document.write("<"); //]]> </script>


Todo el texto en un documento XML será analizado por el analizador.

Pero el texto dentro de una sección CDATA será ignorado por el analizador.

CDATA - Datos de caracteres (no analizados)

El término CDATA se usa sobre datos de texto que el analizador XML no debe analizar.

Los caracteres como "<" y "&" son ilegales en elementos XML.

"<" generará un error porque el analizador lo interpreta como el inicio de un nuevo elemento.

"&" generará un error porque el analizador lo interpreta como el inicio de una entidad de caracteres.

Algunos textos, como el código JavaScript, contienen una gran cantidad de caracteres "<" o "&". Para evitar errores, el código de script se puede definir como CDATA.

Todo en el interior de una sección CDATA es ignorado por el analizador.

Una sección CDATA comienza con " <![CDATA[ " y finaliza con " ]]> "

Uso de CDATA en la salida del programa

Las secciones de CDATA en documentos XHTML pueden ser analizadas de manera diferente por los navegadores web si convierten el documento en HTML, ya que los analizadores HTML no reconocen los marcadores de inicio y fin de CDATA, ni reconocen las referencias de entidades HTML como &lt; dentro de las etiquetas <script> . Esto puede causar problemas de renderizado en los navegadores web y puede generar vulnerabilidades de scripts entre sitios si se utilizan para mostrar datos de fuentes que no son de confianza, ya que los dos tipos de analizadores estarán en desacuerdo sobre dónde termina la sección CDATA.

Un breve tutorial de SGML .

Además, vea la entrada de Wikipedia en CDATA .


CDATA no tiene ningún significado en HTML.

CDATA es una construcción XML que establece el contenido de una etiqueta que normalmente es #PCDATA - datos de caracteres analizados, que se tomará como #CDATA, es decir, datos de caracteres no analizados. Solo es relevante y válido en XHTML.

Se usa en etiquetas de script para evitar el análisis < y & . En HTML, esto no es necesario, porque en HTML, el script ya es #CDATA.


Una forma de escribir un subconjunto común de HTML y XHTML , con la esperanza de una mayor portabilidad.

En HTML, <script> es magia escapa todo hasta que aparece </script> .

Entonces puedes escribir:

<script>x = ''<br/>'';

y <br/> no se considerarán una etiqueta.

Esta es la razón por la cual cadenas como:

x = ''</scripts>''

debe escaparse como:

x = ''</scri'' + ''pts>''

Ver: ¿Por qué dividir la etiqueta <script> cuando se escribe con document.write ()?

Pero XML (y por lo tanto XHTML, que es un "subconjunto" de XML, a diferencia de HTML ), no tiene esa magia: <br/> se vería como una etiqueta.

<![CDATA[ es la forma XHTML de decir:

no analizar ninguna etiqueta hasta el próximo ]]> , considerar todo como una cadena

El // se agrega para hacer que el CDATA también funcione bien en HTML.

En HTML <![CDATA[ no es mágico, por lo que sería ejecutado por JavaScript. Entonces // se usa para comentarlo.

El XHTML también ve el // , pero lo observará como una línea de comentario vacía que no es un problema:

//

Eso dijo:

  • los navegadores compatibles deberían reconocer si el documento es HTML o XHTML del doctype inicial <!DOCTYPE html> vs <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  • los sitios web compatibles pueden confiar en los navegadores compatibles y coordinar doctype con una sola sintaxis de script válida

Pero eso viola la regla de oro de Internet:

no confíes en terceros, o tu producto se romperá