Foros del Web » Programando para Internet » Javascript »

Problema con PopUp al cerrarlo e intentar abrirlo nuevamente

Estas en el tema de Problema con PopUp al cerrarlo e intentar abrirlo nuevamente en el foro de Javascript en Foros del Web. Ya desde hace un tiempito he estado trabajando con JavaScript y gracias a la ayuda de todos en el foro he aprendido muchas cosas, y ...
  #1 (permalink)  
Antiguo 12/08/2005, 13:59
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años, 4 meses
Puntos: 0
Problema con PopUp al cerrarlo e intentar abrirlo nuevamente

Ya desde hace un tiempito he estado trabajando con JavaScript y gracias a la ayuda de todos en el foro he aprendido muchas cosas, y de igual forma he tratado de ayudar a otras... el problema esta parcialmente solucionado, gracias a un Script colocado por nuestra moderadora de este foro "tunait" su script permite abrir popup's desde una ventana principal y luego cerrar todas las que esten abiertas al momento de cerrar la pagina principal, pero yo encontre un detalle y quise modificarlo... haciendo que? desde hace tiempo trabaje abriendo paginas popups y si estan abiertas y procedo a hacer clilck nuevamente en ella desde la pagina principal solo le doy el focus sin refrescar su contenido, ahora uni los dos escript y me ha funcionado perfecto, pero pasa lo siguiente, si por casualidad se cierra un popup manualmente hasta alli llego la magia... resulta que no la abre nuevamente...
he tratado con la propiedad .closed pero nada que ver... pense en hacer otra funcion y colocarla en el evento onUnload de cada una de las pagina popup's y eliminar el registro que se carga en el vector que me indica cuales son las ventanas aviertas pero termine enredandome mas jejeje ya tengo dos dias en esto... aqui les dejo la funcion ya modificada, no estoy colocando el script original de Tunait, ya estoy colocando el modificado por mi persona. y no se porque pero seguramente es una tonteria que solo lo saben los que tienen mas experiencia en el asunto jejeje

Código:
<script language=Javascript> 
//cerrar todas las ventanas. Script por tunait!
//http://javascript.tunait.com/
//[email protected]
//Modificado por er_duque
var Ventanas = new Array();
function centrarPopUp(url, width, height, nombre) { 
	//alert("entro a funcion");
	var yes		= 1; 
	var no		= 0;  
	var menubar     = no;	// The File, Edit, View Menus 
	var scrollbars  = yes;	// Horizontal and vertical scrollbars 
	var locationbar = no;	// The location box with the site URL 
	var directories = no;	// the "What's New", "What Cool" links 
	var resizable   = no;	// Can the window be resized? 
	var status   = no;	// Status bar (with "Document: Done") 
	var toolbar     = no;	// Back, Forward, Home, Stop toolbar 
	var t; 
	e = false;
	for(t = 0; t < Ventanas.length; t++){
		if(Ventanas[t]==nombre){
			e = true;
			if (!Ventanas[t].closed){
				alert("La opcion ya fue abierta.");
				eval(Ventanas[t]).focus();
			}else{
				e = false;
			}
			break;
		}
	}
	if ( window.screen ) { 
		var ah = screen.availHeight - 30; 
		var aw = screen.availWidth - 10; 
		var xc = ( aw - width ) / 2; 
		var yc = ( ah - height ) / 2; 
		var left = "" + xc + ",screenX=" + xc; 
		var top = "" + yc + ",screenY=" + yc; 
	} 
	features = "" + 
		"width=" + width + "," + 
		"height=" + height + "," + 
		"top=" + top + "," + 
		"left=" + left + ""; 
	features += "" + 
		(menubar ? ",menubars" : "") + 
		(scrollbars ? ",scrollbars" : "") + 
		(locationbar ? ",location" : "") + 
		(directories ? ",directories" : "") + 
		(resizable ? ",resizable" : "") + 
		(status ? ",status" : "") + 
		(toolbar ? ",toolbar" : "");
	if(!e){
		eval(nombre+"=window.open('"+url+"','" + nombre + "','"+features+"')");		
		Ventanas[Ventanas.length] = nombre;
	}
} 
function cerrar(){
	var m;
	for(m=0;m<Ventanas.length;m++){
	  if(eval(Ventanas[m])){
		eval(Ventanas[m]).close()
		}
	  }
	Ventanas.length = 0
}
</script>
de antemano muchas gracias... creo no tener mas nada que acotar, pero cualquier duda estare por aqui para tratar de solucionar... sigo pensando en la forma de usar otra funcion para el evento onUnload... asi creo que puede solucionar o mejor dicho yo lo puedo solucionar jejeje...

Saludos
__________________
Er_Duque
  #2 (permalink)  
Antiguo 12/08/2005, 15:13
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años, 4 meses
Puntos: 0
Solucion...

bueno aqui les dejo la solucion...
ya logre solucionar... como dije solo faltaba una tonteria...
en un if falta colocar un eval solamente... aqui les dejo el script completo y funcionando... si hay alguna duda o mejora no duden en hacerla saber...

Código:
<script language=Javascript> 
//cerrar todas las ventanas. Script por tunait!
//http://javascript.tunait.com/
//[email protected]
//Modificado por er_duque
var Ventanas = new Array();
function centrarPopUp(url, width, height, nombre) { 
	//alert("entro a funcion");
	var yes		= 1; 
	var no		= 0;  
	var menubar     = no;	// The File, Edit, View Menus 
	var scrollbars  = yes;	// Horizontal and vertical scrollbars 
	var locationbar = no;	// The location box with the site URL 
	var directories = no;	// the "What's New", "What Cool" links 
	var resizable   = no;	// Can the window be resized? 
	var status   = no;	// Status bar (with "Document: Done") 
	var toolbar     = no;	// Back, Forward, Home, Stop toolbar 
	var t; 
	e = false;
	for(t = 0; t < Ventanas.length; t++){
		if(Ventanas[t]==nombre){
			e = true;
			if (!eval(Ventanas[t]).closed){
				alert("La opcion ya fue abierta.");
				eval(Ventanas[t]).focus();
			}else{
				e = false;
			}
			break;
		}
	}
	if ( window.screen ) { 
		var ah = screen.availHeight - 30; 
		var aw = screen.availWidth - 10; 
		var xc = ( aw - width ) / 2; 
		var yc = ( ah - height ) / 2; 
		var left = "" + xc + ",screenX=" + xc; 
		var top = "" + yc + ",screenY=" + yc; 
	} 
	features = "" + 
		"width=" + width + "," + 
		"height=" + height + "," + 
		"top=" + top + "," + 
		"left=" + left + ""; 
	features += "" + 
		(menubar ? ",menubars" : "") + 
		(scrollbars ? ",scrollbars" : "") + 
		(locationbar ? ",location" : "") + 
		(directories ? ",directories" : "") + 
		(resizable ? ",resizable" : "") + 
		(status ? ",status" : "") + 
		(toolbar ? ",toolbar" : "");
	if(!e){
		eval(nombre+"=window.open('"+url+"','" + nombre + "','"+features+"')");		
		Ventanas[Ventanas.length] = nombre;
	}
} 
function cerrar(){
	var m;
	for(m=0;m<Ventanas.length;m++){
	  if(eval(Ventanas[m])){
		eval(Ventanas[m]).close()
		}
	  }
	Ventanas.length = 0
}
</script>
__________________
Er_Duque
  #3 (permalink)  
Antiguo 13/08/2005, 02:31
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años
Puntos: 381
Hola Er_Duque,

oye, ha quedado estupendo
  #4 (permalink)  
Antiguo 15/08/2005, 07:43
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 19 años, 4 meses
Puntos: 0
Sonrisa

Hola Tunait,

gracias, y ese era el detallito que le faltaba a tu script para finalizarlo y dejarlo perfecto... a menos que alguien mas le encuentre otro detalle jejeje... o mejor dicho otro requerimiento...

bueno saludos.
__________________
Er_Duque
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.