Tengo una función en un archivo externo que quiero que se ejecute cuando se cargue y cuando cambia el tamaño de la ventana.
Si pongo la función entre la etiqueta HEAD y la invoco haciendo:
Código:
... hace lo que quiero que haga.<script type="text/javascript" language="javascript"> function mifuncion(param1, param2){ //Hace cosas } window.onload=mifuncion("parametro1", "parametro2"); window.onresize=mifuncion("parametro1", "parametro2"); </script>
Pero, no funciona si la pongo en un archivo externo y hago:
Código:
Si pongo justo antes de cerrar el BODY:<script type="text/javascript" language="javascript" src="Scripts/mifuncion.js"> </script> <script type="text/javascript" language="javascript"> window.onload=mifuncion("parametro1", "parametro2"); window.onresize=mifuncion("parametro1", "parametro2"); </script>
<script type="text/javascript" language="javascript">
window.onload=mifuncion("parametro1", "parametro2");
window.onresize=mifuncion("parametro1", "parametro2");
</script>
... funciona, pero sólo en el evento ONLOAD.
Si lo pongo en los evento sde la etiqueta body de este modo:
<body onload="mifuncion('p1', 'p2')" onresize="mifuncion('p1', 'p2')">
... también funciona, pero el problema es que el atributo onresize me marca un Warning en el Tidy (Validación).
¿Alguien me puede indicar cómo debo hacerlo?
Si la solución es tener la función declarada en local, pues ni modo.
A continuación pongo la función en cuestión, por si fuera una cuestión de rutas a objetos o algo así:
Código:
function resize(id, restar){ var viewportwidth; var viewportheight; // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight if (typeof window.innerWidth != 'undefined') { viewportwidth = window.innerWidth; viewportheight = window.innerHeight; } // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document) else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) { viewportwidth = document.documentElement.clientWidth; viewportheight = document.documentElement.clientHeight; } // older versions of IE else { viewportwidth = document.getElementsByTagName('body')[0].clientWidth; viewportheight = document.getElementsByTagName('body')[0].clientHeight; } document.getElementById(id).style.height=viewportheight-restar+"px"; }