El problema con close()
El método window.close() cierra la ventana del navegador
especificada. Si se llama a close() sin especificar una referencia
a una ventana, cerrará la última ventana activa.
Si se llama al método close() desde una ventana que no se
abrió con un script, un aviso de confirmación alerta
al usuario de que le ventana está a punto de cerrarse. Navigator
no pide tal confirmación si la ventana sólo tiene
un documento (el que acabas de abrir en la misma) en su historial.
Veamos un ejemplo: los siguientes enlaces abren una ventana nueva
con el documento test1.html. El primero utiliza el método
window.open() para abrirla, mientras el segundo simplemente enlace
utilizando el atributo TARGET:
<A HREF="javascript:void(window.open('test1.html'))">Launch
Window (con JavaScript)</A><BR>
<A HREF="test1.html"
TARGET="_blank">Launch Window (con HTML)</A>
En el documento test1.html aparecerá un botón que
ejecutará el método
window.close():
<FORM>
<INPUT TYPE="button" VALUE="Cerrar ventana"
onClick="window.close()">
</FORM>
Cuando se usa el primer enlace para abrir la ventana nueva, el navegador
"recuerda" que fue abierta con un script, de manera que
cuando pulsas con el botón, la ventana se cierra sin pedir
confirmación. En el segundo enlace, en cambio, Explorer pedirá
confirmación . Navigator también cerrará el
enlace sin pedir confirmación porque no tiene más
documentos en el historial de la ventana (aparte de test1.html).
COMENTARIO PERSONAL: Tengo que confesar que tal situación
sólo se me ha producido con frecuencia en IE5, en la versión
IE5.5, la ventana abierta mediante un enlace normal me la ha cerrado
sin pedirme confirmación. Sin embargo considero necesario
(para asegurarse) seguir estas indicaciones.
|