Insisto, insisto, insisto: Lo mejor es agregarlos a la plantilla y utilizar la menor cantidad de archivos externos. De todas formas, la sintaxis correcta para agregar un script contenido en un archivo externo es la siguiente:
<script src='URL_archivo.js' type='text/javascript'></script>
<script src='URL_archivo.js' type='text/javascript'/>
La extensión de esos archivos es .js pero eso, sólo es una convención, en realidad, puede ser cualquier otra o no tener ninguna en absoluto, basta que sea un archivo de texto plano sin formato y que el contenido sea un código válido y no contenga etiquetas HTML.
El atributo type es obligatorio y el atributo language que muchas veces se ve es innecesario a menos que el lenguaje del archivo no sea JavaScript. Eventualmente, se agrega un atriburto charset si el script contiene caracteres especiales:
<script src='URL_archivo.js' type='text/javascript' charset='utf-8' />
Muchos de ellos DEBEN ser incluidos en el HEAD porque deben ser ejecutados de manera inmediata pero, esto no ocurre siempre. Algunos, DEBEN ser ejecutados después que la pagina ha sido cargada y para eso existen instrucciones específicas:
<script type='text/javascript'>
window.onload=function() {
// esto se ejecutará cuando la pagina haya termiando de cargarse
}
</script>
Una regla elemental es la siguiente: No podemos ejecutar un script que modifique nuestra página si eso que vamos a modificar aún no se ha creado.
Una página web se crea de manera secuencial, línea por línea tal cual se ve en el código fuente así que debemos estar atentos a ese orden. Por ejemplo:
<script type='text/javascript'> getElementById('ejemplo').style.display='none'; </script>
<div id='ejemplo'> ....... </div>
Esto sería lo correcto:
<div id='ejemplo'> ....... </div>
<script type='text/javascript'> getElementById('ejemplo').style.display='none'; </script>
Por el contrario, scripts como los de Twitter y Tumblr es conveniente ubicarlos al final de la página, antes de </body> para que se ejecuten después que la página ha sido cargada y de esa manera, tener el blog funcionando aún cuando los datos de esos servicios no sean accesibles. Sería bueno que Blogger hiciera lo mismo con algunos de sus scripts como los que manejan los comentarios, el buscador o los seguidores.
A diferencia del HTML, el lenguaje JavaScript es sensible a las mayúsculas y minúsculas así que ese detalle debe ser tenido muy en cuenta a la hora de darle nombre a las variables y las funciones.
Aunque hay excepciones, cada línea de código debe terminar con un punto y coma. Es una buena práctica acostumbrarse a hacerlo.
No es usual utilizar esto pero, los scripts externos también pueden cargarse usando código JavaScript; para esto, hay muchos métodos:
<script type='text/javascript'>
window.onload=function(){
if(!document.getElementById || !document.createElement){return;}
var nuevoScript = document.createElement('script');
nuevoScript.type = 'text/javascript';
nuevoScript.src = 'URL_archivo';
document.getElementsByTagName('head')[0].appendChild(nuevoScript);
}
</script>
<script type='text/javascript'>
function loadScript(src) {
nuevoScript = document.createElement( 'script' );
nuevoScript.src = src;
nuevoScript.type = 'text/javascript';
head = document.getElementsByTagName( 'head' )[0];
head.appendChild(nuevoScript);
}
</script>
<script type='text/javascript'>
loadScript('URL_archivo');
</script>
<script type="text/javascript">
//<![CDATA[
....... aquí va el código .......
//]]>
</script>
Es importante saber que un script puede tener un código que se ejecuta apenas es cargado o bien, una función que se ejecuta sólo cuando la invocamos. Por ejemplo:
<script type='text/javascript'>
alert ('un mensaje');
function ejemploFuncion() {
alert ('otro mensaje');
}
</script>
<script type='text/javascript'> ejemploFuncion(); </script>
<a href='javascript:void(0);' onclick='ejemploFuncion();"> click </a>
En Blogger, el atributo href es complicado de resolver. Si bien siempre es mejor que tenga un destino real (una dirección) para que funcione aún cuando el visitante tenga JavaScript desactivado, no siempre podemos hacerlo.
Otra forma de llamar a una función es esta:
<a href='javascript:ejemploFuncion();"> click </a>
Tampoco es necesario que la etiqueta sea un enlace, pude usarse casi cualquier otra:
<span onclick='javascript:ejemploFuncion();"> click </span>
0 comentarios:
Publicar un comentario