Foros del Web » Programando para Internet » Javascript »

Evento onLoad de poppu desde padre

Estas en el tema de Evento onLoad de poppu desde padre en el foro de Javascript en Foros del Web. Muy buenas, vuelvo por estos lares. Pretendo abrir una ventana popup y que esta se ajuste al contenido. Puedo poner la función de ajuste en ...
  #1 (permalink)  
Antiguo 14/09/2006, 03:49
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Evento onLoad de poppu desde padre

Muy buenas, vuelvo por estos lares.

Pretendo abrir una ventana popup y que esta se ajuste al contenido. Puedo poner la función de ajuste en el popup, pero me gustaría asignarla desde la ventana padre. Es decir, en la ventana padre llamo a la función abreVentana() pero en el popup no se llama a ajustarVentana() en el evento onLoad. Hasta ahora tengo esto:

Código PHP:
function abreVentana(url)
{
    
ventana window.open(url,"ventana","height=100,width=100");
    if(
ventana.document.getElementById("contenidoAjuste"))
    {
        
ventana.onload ajustarVentana("contenidoAjuste");
    }

abreVentana() y ajustarVentana() están en el archivo scripts.js

Muchas gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 14/09/2006, 06:15
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Hola Bravenap! Cuanto tiempo sin coincidir!

Por qué no pones en la etiqueta body del pop up lo siguiente:

<body onload="opener.ajustarVentana('contenidoAjuste');" >

La function seguirá en la ventana padre...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 14/09/2006, 06:25
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Muy buenas Karlankas. Sí, bastante tiempo.

Gracias pero lo que pretendía era no escribir nada en el documento del popup, ya que, puede que ese mismo documento lo abra a veces como popup y otras como página normal. De modo que ha de ser el enlace previo el que decide cómo abrirlo. Por eso lo de asignarle el evento onLoad al popup desde el documento padre.

Gracias de todas formas.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #4 (permalink)  
Antiguo 14/09/2006, 08:03
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola Bravenap:

Si que nos rondas poco como dice KarlanKas (¡Saludos a ambos )

Hice una prueba con explorer y tal vez te ayude:

Código:
var ventana;
function abrir() {
 ventana = window.open();
 //ventana.document.write("<html><body>Hola</body></html>");
 setTimeout("alert(ventana.document.body.offsetWidth)",1000);
}
Lo que no sé es el tema de seguridad... si son ventanas de tu dominio creo que puede funcionar, pero otros casos deberías probarlos... En el ejemplo puse offsetWidth, pero mejor es offsetHeight... mozilla devuelve 0 (correcto) y explorer devuelve el tamaño de la ventana... Recuerdo que en mozilla también tenía el valor de la ventana window.inneHeight

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 15/09/2006, 00:59
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Buenas caricatos. ¡dichosos los ojos!

Sí, el popup está en el mismo dominio, por lo que por eso no habría problema. Puede que usar document.write sea la clave. La cuestión no es escribir el código de la función JS en el popup, ya que la función ya está escrita en scripts.js, sino símplemente hacer la llamada en el evento onLoad del popup.

Probé también esto
Código PHP:
function abreVentana(url

    
ventana window.open(url,"ventana","height=100,width=100"); 
    if(
ventana.document.getElementById("contenidoAjuste")) 
    { 
        
ventana.document.body.onload ajustarVentana("contenidoAjuste"); 
    } 

y no se ejecuta el condicional. Sin embargo, si lo pongo sin condicional me da el error 'ventana.document.body' es nulo a o no es un objeto.

Voy a probar con
Código PHP:
ventana.document.write("<script>document.body.onload = ajustarVentana('contenidoAjuste'); </script>"); 
y os cuento.

Gracias a los dos.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #6 (permalink)  
Antiguo 15/09/2006, 01:03
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Pues con esto último se queda colgado. No carga el popup
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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 20:28.