jueves, 21 de junio de 2012

como Cargar una función Javascript cuando carga la página

Clásicamente, cuando utilizábamos Javascript en algún momento, necesitábamos
cargar una función, por ejemplo estaEsMiFuncion() al terminar de cargar toda
la página, por el motivo que fuera. Clásicamente, también, la manera de
hacerlo era ésta:

<body onload="estaEsMiFuncion();">

pero si utilizas una página, header.php, que tiene la cabecera del código
HTML, hasta body>. Dado que esta cabecera es común en muchos gestores de
contenidos, habrá páginas que no precisen la carga de la función, y
consecuentemente, habrá un error.

Existen métodos alternativos de cargar esta función, sin utilizar el evento
onload(). El más sencillo es lo siguente:

<script language="javascript">
window.onload = estaEsMiFuncion;
</script>

IMPORTANTE: No he incluido los paréntesis al final de la función, porque si
no, no funcionaría.

Si quisiéramos cargar más de una función a la carga de la página, haríamos
esto:

<script language="javascript">
window.onload = function() {
estaEsMiFuncion();
funcion1();
funcion2();
}
</script>

Si por cualquier razón nos equivocamos y nos ponemos a apilar funciones con
windows.onload, sólo se ejecutaría la última window.onload que
escribiéramos.

Si queremos ejecutar un parámetro dentro de la función, o sea:


estaEsMiFuncion('parametro1');

no podríamos hacerlo directamente en la función con window.onload, porque no
se permiten los paréntesis. Se haría así:


<script language="javascript">
window.onload = function() {
estaEsMiFuncion('parametro1');
}
</script>

aunque si seguimos la moda de utilizar gestores de evento para desligar
completamente el HTML del Javascript. La función sería algo así:

function addEvent(obj, evType, fn){
if (obj.addEventListener){
obj.addEventListener(evType, fn, false);
return true;
} else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType, fn);
return r;
} else {
return false;
}
}
addEvent(window, 'load', funcion1);
addEvent(window, 'load', funcion2);

nota: esto último no funciona bien en algunos navegadores.

fuente:
http://www.rafalinux.com/txp/articles/35/cargar-una-funcion-javascript-cuando-carga-la-pagina