Foros del Web » Programando para Internet » Javascript »

Cerrar popus generados desde el padre

Estas en el tema de Cerrar popus generados desde el padre en el foro de Javascript en Foros del Web. Cordial saludo. En el aplicativo tengo una pagina principal con pestañas(modulos) cuando se da click en una abre un popup de acuerdo al modulo; todo ...
  #1 (permalink)  
Antiguo 28/06/2007, 10:54
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 3 meses
Puntos: 2
Pregunta Cerrar popus generados desde el padre

Cordial saludo.

En el aplicativo tengo una pagina principal con pestañas(modulos) cuando se da click en una abre un popup de acuerdo al modulo; todo bien, si en la pagina principal le doy cerrar sesion deberia cerrarme todos los popups que tenga abierto; actualmente son 5 modulos; o sea que si abren los 5 serian 5 popus.....

Hay alguna forma de cerrar todos los popus apenas le de cerrar sesion en la pagina principal?????


Agradezco la ayuda y sugerencias que me puedan brindar....
  #2 (permalink)  
Antiguo 28/06/2007, 11:14
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
Re: Cerrar popus generados desde el padre

Hola:

Cuando abras esos popups debes usar variables para poder tener la referencia:

var popups = [false, false, false, false, false];
// para cada pestaña puedes usar un ítem del array.
popups[0] = window.open(...);

Luego, cada popup que se cierre poner el índice asociado a false, y por último al cerrar sesión hacer un bucle...

for (var i = 0, total = popups.length; i < total; i ++)
if (popups[i]) popups[i].close();

Espero que te sirva.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 28/06/2007, 11:32
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 3 meses
Puntos: 2
Re: Cerrar popus generados desde el padre

Saludos caricatos.

Segun entendi debo hacer un open por cada click en la pestaña??? yo tengo una sola función para abrir cualquier modulo....

function nueva_ventana(url, ancho, alto, barra)
{
izquierda = (screen.width) ? (screen.width-ancho)/2 : 100
arriba = (screen.height) ? (screen.height-alto)/2 : 100
opciones = 'toolbar=0,location=0,directories=0,status=1,menub ar=0,scrollbars=' + barra + ',resizable=1,width=' + ancho + ',height=' + alto + ',left=' + izquierda + ',top=' + arriba + ''
popups[i] = window.open(url, '', opciones)
}

Que puedo hacer????
var popups = [false, false, false, false, false]
debe ir antes o dentro de la función?????

Agradezco la ayuda que me puedan brindar...
  #4 (permalink)  
Antiguo 28/06/2007, 11:41
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
Re: Cerrar popus generados desde el padre

Hola:

La definición del array de popups debe estar fuera de la función, para que sea una variable global, pero para cada pestaña solo usar un valos para el índice entre 0 y 4 (los del array)... o sea que la primera pestaña usar
popups[0], para la segunda popups[1] ... y así...

Tal vez puedas hacer un bucle de la colección window.frames, pero no creo que sea una solución segura.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 28/06/2007, 11:50
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 3 meses
Puntos: 2
Re: Cerrar popus generados desde el padre

Saludos caricatos.

resulta que el popup que abro es una pagina con dos marcos.....
no me cierra ninguna ventana lo prope con dos modulos, me abre los popus normal pero no los cierra....

<script type="text/javascript">
var popups = [false, false, false, false, false]
function nueva_ventana(url, ancho, alto, barra) {
izquierda = (screen.width) ? (screen.width-ancho)/2 : 100
arriba = (screen.height) ? (screen.height-alto)/2 : 100
opciones = 'toolbar=0,location=0,directories=0,status=1,menub ar=0,scrollbars=' + barra + ',resizable=1,width=' + ancho + ',height=' + alto + ',left=' + izquierda + ',top=' + arriba + ''
popups[0] = window.open(url, '', opciones)
}
function nueva_ventana1(url, ancho, alto, barra) {
izquierda = (screen.width) ? (screen.width-ancho)/2 : 100
arriba = (screen.height) ? (screen.height-alto)/2 : 100
opciones = 'toolbar=0,location=0,directories=0,status=1,menub ar=0,scrollbars=' + barra + ',resizable=1,width=' + ancho + ',height=' + alto + ',left=' + izquierda + ',top=' + arriba + ''
popups[1] = window.open(url, '', opciones)
}
function CerrarPopups()
{
for (var i = 0, total = popups.length; i < total; i ++)
if (popups[i]) popups[i].close();
}
</script>

Agradezco la ayuda que me puedas brindar...
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 19:27.