Foros del Web » Programando para Internet » Javascript »

Cerrar popup

Estas en el tema de Cerrar popup en el foro de Javascript en Foros del Web. Cómo cerrar un popup cuando se hace carga(onload)/actualiza(boton del navegador) la ventana madre? Ayudadme que estoy desesperadillo... pq no me sale. Esto es el código ...
  #1 (permalink)  
Antiguo 15/01/2004, 12:59
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 20 años, 3 meses
Puntos: 0
Cerrar popup

Cómo cerrar un popup cuando se hace carga(onload)/actualiza(boton del navegador) la ventana madre?

Ayudadme que estoy desesperadillo... pq no me sale.

Esto es el código que estoy provando:
Código PHP:
<html>
<
head>
<
script>
var 
nuevaventana 
function CerrarPopup() {
    
nuevaventana.close();
}
</script>
</head>

<body onload='CerrarPopup();'>

Una vez hayas abierto el popup. Actualiza la pagina principal y
el resultado que se espera es cerrar el popup automaticamente.
Tener en cuenta que no siempre el popup estará abierto.

<a href='#' onclick="window.open('','nuevaventana','');"> abrir popup </a>

</body>
</html> 
  #2 (permalink)  
Antiguo 15/01/2004, 14:07
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola jmaribau:

Podrías probar con onunload y no con onload...

Si pones <a href="#" se refresca la página, pero se pierden todas las variables, en vez de eso puedes usar:
<a href="javascript: nuevaVentana = window.open(...

y en el body:
<body onunload="if (nuevaVentana) nuevaVentana.close()"

y poner la variable nuevaVentana = false en la declaración...

Espero que te sirva.

Saludos
  #3 (permalink)  
Antiguo 15/01/2004, 14:29
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 20 años, 3 meses
Puntos: 0
Usando onunload funciona correctamente.

I porque no lo puedo poner en onload?

Has dicho:
<a href="#" se refresca la página, pero se pierden todas las variables
Que variables se pierden?

Es lo mismo esto:
<a href='#' onclick="new=window.open('','nuevaventana','');"> abrir popup </a>
que esto:
<a href='javascript: new=window.open('','nuevaventana','');"> abrir popup </a>

Que diferencia hay?
  #4 (permalink)  
Antiguo 15/01/2004, 14:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

onload es el evento de inicio de la página y onunload el del fin.

Las variables que tengas en cualquier script o en los formularios pueden perderse con los enlaces a #, dependiendo de la inicialización de la página. Entonces, a pesar de que los dos ejemplos que propones hacen lo mismo, el que tiene "#" también refresca la página.

La verdad es que aún me faltan saber muchas cosas de las ventanas, por ejemplo no es lo mismo:
var nuevaVentana = window.open(...
que
window.open("", "nuevaVentana"...

Con el primer ejemplo puedes poner nuevaVentana.close(), pero con el segundo no estoy seguro si es "window.nuevaVentana" o "document.frames.nuevaVentana"...

Pero no te voy a liar, porque yo mismo no lo tengo claro.

Saludos
  #5 (permalink)  
Antiguo 15/01/2004, 14:55
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 20 años, 3 meses
Puntos: 0
No te preocupes.. no me lias.

Lo que no entiendo es pq no puedo cerrar una ventana en onload si conozco su nombre? y que con onunload si que funcione.
  #6 (permalink)  
Antiguo 15/01/2004, 15:21
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Aunque sepas su nombre, se trata de una variable de sesión, y con onload "abres sesiones", y aunque dos sesiones distintas usen un mismo nombre de variable, estamos hablando de dos variables distintas, en cambio unload es algo de la misma "sesión" que se abrió con el "load"...

Insisto en que no estoy muy seguro del tema, pero creo que por ahí van los tiros...

¡PUM!, ¡PAM!...

Saludos
  #7 (permalink)  
Antiguo 15/01/2004, 15:24
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, jmaribau.

La ventana la has abierto en una página y tienes control sobre ella con su correspondiente variable, pero al actualizar es como si la página empezara de nuevo, es decir la variable ya no existe. Por eso te proponen usar el evento onunload, para poder utilizar la variable antes de que se pierda.

Saludos,
  #8 (permalink)  
Antiguo 15/01/2004, 15:30
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Elefantes volantes caricatos. Hoy es el día de los choques

Me voy antes de que me rompa algo
  #9 (permalink)  
Antiguo 15/01/2004, 15:39
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
¡Lo que me faltaba hoy es que me cayera encima uno de esos "Elefantes volantes"

más saludos... y más...

  #10 (permalink)  
Antiguo 15/01/2004, 15:41
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 20 años, 3 meses
Puntos: 0
JavierB, me ha quedo claro lo que me dices.

Así es impossible cerrar un popup con onload? O hay algun método.
Lo digo en el caso de que el popup haya quedo abierto, y la ventana madre la hayas cerrado. Al volver a abrir una nueva ventana madre cómo poder cerrar el popup. Esta es la question.

Perdonad que sea tan pesado.. ;) . Tengo una mente inquieta.
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 11:24.