Contenido

Reutiliza tags script para cargar js y ejecutar código

27 Ago

+ 7

John Resig, nos muestra una técnica con la que podremos reutilizar los tags <script /> para cargar ficheros JS y además ejecutar código en el mismo tag.

Método tradicional

<script type="text/javascript" src="fichero.js" ></script>
<script type="text/javascript"> funcion_de_fichero("Hola");</script>

Actualmente el sistema usado es el de usar un tag <script /> para cargar el fichero JS que necesitamos con el código que necesite la página y posteriormente usarlo en otro tag <script /> independiente.

Alternativa

John nos propone combinar ambos para conseguir hacer, más semántico el código y además conseguir ahorrarnos tener que volver a definir un tag <script />, a mi parecer innecesario.

<script type="text/javascript" src="fichero.js" >
   funcion_de_fichero("Hola");
</script>

Como podemos ver, queda mucho más elegante, semántico y encima fácil de entender ya que podemos relacionar la función al fichero sabiendo el src del tag en el que está siendo usada.

La mágia

Para hacer posible esto, evidentemente necesitamos tirar de código e implementar la solución nosotros mismo. Los navegadores actuales no permiten este tipo de implementación por lo que es necesario añadir 3 líneas al fichero que carguemos en el src de nuestro tag <script />

var scripts = document.getElementsByTagName("script");
eval( scripts[ scripts.length - 1 ].innerHTML );

El codigo anterior, deberemos insertarlo al final del fichero que indiquemos en el src del tag. Su misión es buscar todos los tags <script /> y evaluar el contenido del último detectado.

Simplemente genial, sería interesante disponer de esto a nivel nativo.

  • Resulta muy interesante, pero como bien apuntas sería más conveniente que viniera implementado por defecto, porque cuando usas scripts de terceros es más dificil introducir ese par de líneas.
    Aún así sería interesante ponerlo de moda y que los desarrolladores lo introdujeran en su código.
    Un saludo y gracias una vez más por tu estupenda información.

  • Con Jhon trabajando para Mozilla muy pronto…

  • Creo que puede tender a fallar, sobre todo en internet explorer en donde siempre pasa algo cuando se intenta acceder al documento mediante el DOM.

  • No creo que sea la forma mas semántica de hacerlo, además que. se ha reservado que cuando se mande a llamar un js y ocurra un error, se ejecute el script dentro del tag, no veo porque seria mas semántico, mas bien lo notaria intrusivo

  • Estoy deacuerdo con zetta. Viola las normas del javascript no obstructivo al escribir código dentro del documento. JResig es uno de los genios más influyentes en el campo del desarrollo web, pero no estoy deacuerdo con esta forma de utilizarlo.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.