Foros del Web » Programando para Internet » Javascript »

Función en archivo externo y window.onresize

Estas en el tema de Función en archivo externo y window.onresize en el foro de Javascript en Foros del Web. Hola gente: 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. ...
  #1 (permalink)  
Antiguo 29/10/2007, 13:59
Avatar de Escoffie  
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 21 años
Puntos: 9
Función en archivo externo y window.onresize

Hola gente:

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:
<script type="text/javascript" language="javascript">
function mifuncion(param1, param2){
     //Hace cosas
}
window.onload=mifuncion("parametro1", "parametro2");
window.onresize=mifuncion("parametro1", "parametro2");
</script>
... hace lo que quiero que haga.

Pero, no funciona si la pongo en un archivo externo y hago:

Código:
<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>
Si pongo justo antes de cerrar el BODY:
<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";
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 11:45.