Ver Mensaje Individual
  #24 (permalink)  
Antiguo 19/01/2004, 17:24
ascar
 
Fecha de Ingreso: diciembre-2003
Mensajes: 45
Antigüedad: 20 años, 5 meses
Puntos: 0
Y yo sigo insistiendo con este tema....

Tengo una duda sobre el script de cerrar todas las ventanas que hay en el indice tematico hecho por Tunait.

Lo que pasa es que a mi parecer la sentencia if(eval('ventana' + m)) no hace lo que debe de hacer (por lo menos no en IE6), hice dos paginas sencillas para mostrar el ejemplo:

cerrartodas.html

<html>
<head>
<script language="JavaScript">
//cerrar todas las ventanas. Script por tunait!
//http://javascript.tunait.com/
//[email protected]
var cont = 0
function abreVentana(pagina)
{
cont++
eval('ventana'+ cont + "=window.open(pagina,'ventana'+cont,'')")
}

function cerrar()
{
for(m=1;m<=cont;m++)
{
if(eval('ventana' + m))
{alert(eval('ventana'+m))
alert(m)
eval('ventana' + m + ".close()")
}
}
}
cont=0

function cerrarmadre() {
var ventana = window.self
ventana.opener = window.self
ventana.close()}

function mostrarmensaje()
{var pagina = "botoncerrar.html"
abreVentana(pagina)
}

</script>
</head>
<body onunload = "cerrar()">
<input type="button" name = "abrir" value="Abrir" onclick = "mostrarmensaje()">
<input type="button" name = "cerrar" value="cerrar" onclick = "cerrarmadre()">
</body>
</html>

y este otro,

botoncerrar.html

<html>
<head>
<script type="text/javascript">
function cerrar() {
var ventana = window.self
ventana.opener = window.self
ventana.close()}
</script>
</head>
<body>
<input type="button" name = "cerrar" value="cerrar" onclick = "cerrar()">
</body>
</html>

lo que hace es que se abre la ventana cerrartodas.html tiene dos botones una que cierra la ventana y otra que abre una ventana hija, la ventana hija es la ventana botoncerrar.html que contiene un simple boton para cerrar.

Lo que tiene de especial es que en la funcion cerrar del la pagina cerrar todas me muestra un alert con el numero de la ventana a cerrar y el resultado de la sentencia eval('ventana'+m).

Lo que entiendo es que la sentencia if(eval('ventana' + m)) me dice si la ventana esta abierta o no devolviendo true si esta y false si no lo esta, pero si abren una ventana, la cierran y luego cierran la ventana madre veran que igual el entra y ejecuta las lineas de código de ese if cerrando la ventana que esta cerrada osea que devuelve true cuando la ventana esta cerrada.

Eso me ha dejado muy confundido y no se si es que le hace falta algo o que y de verdad me serviria muchisimo si esa linea de código funcionara.

Bueno ahi les dejo la inquietud...

ascar

P.D: Tunait lamento mucho contradecir tu código, pero ojala y el equivocado sea yo y me muestres que si funciona.