XHTML estricto y bloques JavaScript

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>
Twitter Digg Delicious Stumbleupon Technorati Facebook Email

3 Respuestas para “XHTML estricto y bloques JavaScript”

  1. 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…

  2. 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.

Trackbacks/Pingbacks

  1. NonSleep.com » Un poco de “estandar” nunca viene mal - 30. Dic, 2005

    […] xhtml css javascript […]