Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/11/2004, 06:02
Avatar de Helbira
Helbira
 
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 7 meses
Puntos: 5
Cerrar ventana padre en Mozilla

Hola a todos.
Estoy usando mi propio código que publiqué en la FAQ 115 de JAvaScript pero no consigo hacerlo funcionar en Mozilla. A ver si me podeis ayudar a completar el código para que funcione también en este navegador.

Lo que tengo es una pagina que abre una ventana sin pedir confirmación. Se llama pagina 1.html con el siguiente codigo:

Código:
 
<html>
<head>
<script language="javascript">
// Esta función posiciona la ventana popup en el centro de la pantalla
function abreVentanaCentrada()
{
var url=arguments[0];
var nombre=arguments[1];
var anchoVentana=arguments[2]; 
var altoVentana=arguments[3]; 
var configuracion = arguments[4];
var anchoPantalla = screen.width;
var altoPantalla = screen.height;
var estilo ="";
 
if(arguments.length<5)
estilo = "titlebar=no,menubar=no,location=no,status=no,directories=no,toolbar=no,border=no,resizable=yes,width="+anchoVentana+",height="+altoVentana;
else
estilo = configuracion + ",width="+anchoVentana+",height="+altoVentana;
 
if(anchoPantalla==800 && altoPantalla==600)
{ 
if (navigator.appName.toLowerCase() == "navigator")
estilo = estilo + ",screenY=0,screenX=0";
else
estilo = estilo + ",top=0,left=0";
}
else
{
if(altoVentanaPadre==0 && anchoVentanaPadre==0)
{
var distanciaArriba = (altoPantalla/2)-(altoVentana/2);
var distanciaLateral = (anchoPantalla/2)-(anchoVentana/2);
if (navigator.appName.toLowerCase() == "navigator")
	estilo = estilo + ",screenY="+distanciaArriba+",screenX="+distanciaLateral;
else
	estilo = estilo + ",top="+distanciaArriba+",left="+distanciaLateral;
}
else 
{
if (navigator.appName.toLowerCase() == "navigator")
{
	var distanciaArriba = (altoPantalla/2)-(altoVentana/2);
	var distanciaLateral = (anchoPantalla/2)-(anchoVentana/2);
	estilo = estilo + ",screenY="+distanciaArriba+",screenX="+distanciaLateral;
}
else
{
	var altoVentanaPadre = top.screenTop;
	var anchoVentanaPadre = top.screenLeft;
	var anchuraPadre=top.document.body.offsetWidth;
	var alturaPadre=top.document.body.offsetHeight;
	var distanciaArriba = (altoVentanaPadre+(alturaPadre/2))-(altoVentana/2);
	var distanciaLateral = (anchoVentanaPadre+(anchuraPadre/2))-(anchoVentana/2);
 
	estilo = estilo + ",top="+distanciaArriba+",left="+distanciaLateral;
}
}
}
 
return window.open(url,nombre,estilo); 
}
</script>
</head>
<body>
<script language="JavaScript">
var elemVen = abreVentanaCentrada('ventana.html','gestionestructura',800,535);
sAgent = navigator.userAgent;
if(sAgent.indexOf("IE 4") > -1 || sAgent.indexOf("IE 5.0") > -1)
{
	 //NO SE HACE NADA
}
else
{ 
	 ventana = window.self;
	 ventana.opener = window.self;
}
	 ventana.close();
</script>
ESTOY EN LA VENTANA PADRE
</body>
</html>
y una segunda pagina llamada ventana.html que es la pagina que se abre en mi ventan nueva:

Código:
<html>
<head>
<title>Ventana hija</title>
</head>
<body>
VENTANA HIJA
</body>
</html>
pagina1.html abre una ventana nueva y a continuacion quiero que se cierre pero no me funciona ese codigo en Mozilla. El error javascript que me da es el siguiente:

"Scripts no pueden cerrar ventanas que no se abrieron mediante script."

Alguna idea. Supongo que como intento cerrar una ventana que no se abrió desde otra ventana con código de script pues no me deja cerrarla.. pero por eso mismo se le intenta engañar al navegador redefiniendo su Opener.

Nuse..

Gracias

Un beso
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...