Foros del Web » Programando para Internet » Javascript »

OnResize sólo funciona en IE

Estas en el tema de OnResize sólo funciona en IE en el foro de Javascript en Foros del Web. Hola, Necesito que tanto al entrar la primera vez como al pulsar PF11 (agrandar o reducir la pantalla del explorador) entre en una función comprobarAlto ...
  #1 (permalink)  
Antiguo 27/07/2010, 08:21
 
Fecha de Ingreso: septiembre-2004
Ubicación: Andorra
Mensajes: 130
Antigüedad: 20 años, 3 meses
Puntos: 0
OnResize sólo funciona en IE

Hola,

Necesito que tanto al entrar la primera vez como al pulsar PF11 (agrandar o reducir la pantalla del explorador) entre en una función comprobarAlto para que calcule el area disponible para scroll:

La función acaba con la instrucción :

Código:
window.onresize=function() { location.reload(); };
que entiendo que debería recargar la página al pulsar PF11, y lo cierto es que funciona, pero sólo en IE; Firefox, Chrome, etc no hacen ni caso, por lo que no me recalcula el area de scroll.

En el BODY hago :
Código:
  <body onload="comprobarAlto()" >
y no puedo hacer
Código:
  <body onload="comprobarAlto()";  onresize="comprobarAlto()">
porque me da error al validar el HTML .

¿ Como puedo hacer que al pulsar PF11 vuelva a entrar en la función de calculo de area de scroll y por tanto redimensione bien la página ?
  #2 (permalink)  
Antiguo 27/07/2010, 08:40
 
Fecha de Ingreso: enero-2009
Ubicación: Uruguay
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 4
Respuesta: OnResize sólo funciona en IE

con jquery esas cosas se te solucionan

yo haria algo asi


$(document).ready(function(){
function comprobarAlto(){
}

$(window).load(function(){
comprobarAlto();
}
$(window).resize(function(){
comprobarAlto();
}
}


en tu codigo veo un ; que esta mal --> onload="comprobarAlto()"

luego para usar jquery tenes que bajarte el archivo de su pagina oficial y tan solo incluirlo en tus paginas para poder utilizarlo te va a ser de gran ayuda y hay mucha info en su pagina tambien.
Saludos
__________________
www.sandant.com - Blog de Programacion y mucho mas

WWW.SPEDEVIGNER.COM SE DEJARA DE USAR EN UN MES
  #3 (permalink)  
Antiguo 27/07/2010, 09:29
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: OnResize sólo funciona en IE

Cita:
y no puedo hacer
Código:
  <body onload="comprobarAlto()";  onresize="comprobarAlto()">
ciertamente te da error de validacion, pero puedes registrar la funcion desde javascript en el objeto window.
Código:
self.onresize = tu_funcion;
para referencia futura, aca puedes ver una lista de eventos y su compatibilidad con los navegadores. http://www.quirksmode.org/dom/events/index.html
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 27/07/2010, 09:45
 
Fecha de Ingreso: septiembre-2004
Ubicación: Andorra
Mensajes: 130
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: OnResize sólo funciona en IE

Hola,

Gracias por la ayuda.

Zerokilled no acabo de entender lo que suguieres, ¿ Quieres decir que haga :
Código:
function comprobarAlto() { 
                        instruccion 1
                        instruccion 2
                        ............. 
                        instruccion N

self.onresize = comprobarAlto() ;

}
?

La función comprobaAlto es donde entra desde la tag BODY y no veo muy claro eso de que la función se llame así misma, aun cuando el onresize quede en "Stand-By" hasta que el visitante pulse PF11. Aclara como lo harías.






if (window.innerHeight){
procMoz();
}else{
procIE();
}

window.onresize=function() { location.reload(); };
}
  #5 (permalink)  
Antiguo 27/07/2010, 16:33
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 11 meses
Puntos: 45
Respuesta: OnResize sólo funciona en IE

Buenas,

no necesitas ni crear nuevas reglas ni recargar la página, simplemente:

Código Javascript:
Ver original
  1. function init()
  2. {
  3.     ajustar();
  4.     window.onresize = ajustar;
  5. }
  6.  
  7. window.onload = init;
  8.  
  9. function ajustar()
  10. {
  11.     if (window.innerHeight)
  12.     {
  13.         document.getElementsByTagName('body')[0].style.height = window.innerHeight + 'px';
  14.         document.getElementsByTagName('body')[0].style.width = window.innerWidth + 'px';
  15.     }
  16.     else
  17.     {
  18.         // los casos para explorer (que hay varios)
  19.     }
  20.  
  21.     alert('alto: ' + document.getElementsByTagName('body')[0].style.height);
  22.     alert('ancho: ' + document.getElementsByTagName('body')[0].style.width);
  #6 (permalink)  
Antiguo 28/07/2010, 04:11
 
Fecha de Ingreso: septiembre-2004
Ubicación: Andorra
Mensajes: 130
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: OnResize sólo funciona en IE

Gracias por la ayuda, ahora funciona en todos los casos.
Al final lo he hecho creando nuevas neglas, por que no quiero cambiar el tamaño del BODY, sino de una div ya existente.

Etiquetas: onresize
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




La zona horaria es GMT -6. Ahora son las 13:10.