XHTML estricto y bloques JavaScript

Patxi, 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>
Compártelo:
  • Twitter
  • Meneame
  • del.icio.us
  • Facebook
  • BarraPunto
  • Digg
  • Google Bookmarks
  • Netvibes
  • Bitacoras.com
  • LinkedIn
  • Tumblr
  • email
  • MySpace
  • Technorati
  • Add to favorites

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