XHTML estricto y bloques JavaScript

Patxi Echarte, April 29th, 2005

Si has intentado introducir código JavaScript en una página que desees que valide como XHTML estricto, seguramente te habrás encontrado con problemas, a no ser que hayas adoptado la opción de guardar el JavaScript en un archivo externo.

Esto se debe a que en la especificación del XHTML estricto 1.1, el contenido de los bloques javascript y estilos es considerado como #PCDATA. Esto hace que si en el interior de la etiqueta <script> aparece algún tipo de carácter especial para XML como por ejemplo <, el validador encuentre un fallo.

Una solución sería pasar todos estos caracteres a sus correspondientes códigos de entidad HTML, aunque esto es bastante laborioso y proclive a errores. La solución ideal pasa por la utilización de las etiquetas CDATA habituales. Sin embargo si lo probamos nos encontraremos con que los navegadores no las entienden y se generan errores.

Para resolverlo hay un truco que se puede utilizar y que permiten incrustar código JavaScript en la página html y que ésta valide correctamente. El truco se basa en mezclar el CDATA con comentarios html y javascript.

<script type="text/javascript"><!--//--><![CDATA[//><!--
   
// aquí tu código JavaScript.....
   
//--><!]]></script>
Comparte esta información

3 Comentarios para “XHTML estricto y bloques JavaScript”

  1. NonSleep.com » Un poco de “estandar” nunca viene mal dice:

    […] xhtml css javascript […]

  2. Oscar dice:

    No me funciona en Opera no muestra el resultado de un Javascript.
    y FireFox no muestra la pag… a menos que quite el javascript , porque ?

    Estoy haciendo paginas XHTML y en una parte de una de ellas
    necesito mostrar el resultado de un javascript….

    Cualquier ayuda o tip gracias…

  3. lala dice:

    Otra forma es simplemente encerrar el código javascript en un comentario, así:

    El validador considera el bloque como un comentario y los navegadores no encuentran problemas.

    Saludos.

Deja un comentario