My Opera is closing 3rd of March
photo of el Isra

el blog del isra

HTML: Cómo cerrar una etiqueta de script

,

La etiqueta script en (X)HTML es la que se utiliza para introducir código de cliente en las páginas Web.

<script type="text/javascript">
var Hola=function(){
    alert("frijolman: Hola! jajaja");
};
</script>

También se utiliza para hacer referencia a un archivo externo que contenga los scripts, utilizando el atributo src.

Aquí es donde hay un detalle que podemos no detectar al momento de crear nuestra página, y que puede afectar en su funcionamiento.

Como sabemos, los elementos HTML pueden tener etiquetas de apertura y cierre, ó estar dentro de una sola etiqueta.

  <td>Casilla con algo adentro</td>
  <td /> <!-- Casilla vacía -->

El problema con el elemento script es que siempre debe llevar etiquetas de apertura y cierre.

<!-- Ejemplo 1. Esto está mal ): -->
  <script type="text/javascript" src="archivo.js" />
<!-- Ejemplo 2. Esto está bien (: -->
  <script type="text/javascript" src="archivo.js"></script>

No sé a qué se debe esto, pero es una regla general en los navegadores. Safari es el único que he utilizado que sí permite utilizar el primer ejemplo. IE, Opera y Firefox no reconocen esta etiqueta script como válida, ni las posteriores. Incluso pueden omitir el contenido de la página. Esto pasa porque el navegador "espera" encontrar la etiqueta </script>, y considera todo después de <script /> como contenido de ese elemento.

El explorador de DOM en el depurador de Internet Explorer lo deja muy claro:

Archivo original

<script type="text/javascript" src="archivo.js" />
<script type="text/javascript">
    window.onload=function(){alert("atatatatata!");};
</script>

Elementos generados por el navegador

<script type="text/javascript" src="archivo.js">
  <script type="text/javascript">window.onload=function(){alert("atatatatata!");};
</script>

El navegador lee el primer elemento script y espera una etiqueta de cierre. Todo el segundo script lo considera contenido del primero, y al llegar a la etiqueta de cierre, la considera como parte del primero.

Así que recuerden siempre utilizar la apertura y cierre en las etiquetas script.

Verifica tu registro de celularAsuntos internos

Comments

Anibalanibal784 Wednesday, May 5, 2010 6:57:18 PM

juas, no la sabía.

Como sabemos, los elementos HTML pueden tener etiquetas de apertura y cierre, ó estar dentro de una sola etiqueta.


En realidad el que permite eso es XML, XHTML es un sub-conjunto de éste (y HTML permite cosas como .... <br>).

Calculo yo que el hecho de que únicamente permita apertura y cierre, es para navegadores en los que no se soporta javascript, así si el navegador no soporta esa extensión, tu puedes mostrar el texto de dentro (algo así, "actualízate, tu navegador no soporta javascript... descarga IE"), o ganzadas así.

Ni idea si será así, pero lo veo muy seguido con frames y con la nueva etiqueta video.

el Israel-isra Thursday, May 6, 2010 12:55:03 AM

Originally posted by anibal784:

En realidad el que permite eso es XML, XHTML es un sub-conjunto de éste.....


No quise entrar en detalles de ese tema, porque me hubiera ido de largo explicando las diferencias entre XHTML y HTML, y no era la finalidad. Pero gracias por dar la aclaración.

Comentario personal: Odio HTML. XHTML debería ser el único

Saludos

Write a comment

New comments have been disabled for this post.