Por partes:
Cita: Preguntas:
Por que la instruccion self.close() en las subventana cierra la ventana sin confirmación y por que la misma instrucción para la ventana principal si pide confirmación? que es lo que significa el self?
No se trata del self, si no de que sólo se puede cerrar una ventana sin confirmación si es hija de otra y ha sido abierta mediante javascript.
Creo que en NS no pide confirmación, pero IExplorer sí la pide.
Tu pon la misma instrucción de cerrar en una ventana madre y en una hija y verás que una no pide confirmación y la otra sí.
self significa "sí misma". Se puede omitir y poniendo sólo close() funciona igual, pero si quisieras cerrar una popup que contiene una página con frames, entonces sí necesitas indicarle la ventana (en el caso de frames, habrías de poner top.close() )
Yo pongo siempre self porque así lo aprendí y por costumbre, pero se puede omitir tranquilamente.
Cita: Me puedes explicar paso a paso que es lo que se hace en esta función? Podre signos de ointerrogación donde no entiendo ni papa...
function cerrar() {
var ventana = window.self ?????
ventana.opener = window.self ?????
ventana.close()} +/-???
Es un truco para hacer creer a la ventana madre que es una ventana hija y así que se cierre sin pedir confirmación.
He leído que funciona, pero a partir de explorer 6. Desde luego, yo que sigo agarrada a explorer 5.0 nunca he logrado que eso me funcione.
Y ahora te dejo algunos añadidos que le he puesto a esas páginas para que funcione correctamente y sin que devuelva errores. te marco en engritas lo nuevo que añadí.
Lo que no entiendas, pues me preguntas nomás.
ascar1.htm
<script language="JavaScript" type="text/javascript">
var abierta=false, abierta1=false
function cerrar() {
var ventana = window.self
cierra()
ventana.opener = window.self
ventana.close()}
function cierra(){
if(abierta){
ventana.close()
} if(abierta1){
ventana1.close()
}
}
function habilita(
cual){
if(cual.name == "ventana"){
abierta = false
document.getElementById('botoncito').disabled = false
}
else{
abierta1 = false
document.getElementById('botoncito1').disabled = false
}
}
window.onunload=cerrar
</script>
</head>
<body>
<input type="submit" name="botoncito" id="botoncito" value="abrir" onclick="ventana = window.open('ascar2.htm','ventana','width=200,heig ht=200'
);abierta=true;this.disabled = true">
<input type="submit" name="botoncito1" id="botoncito1" value="abrir" onclick="ventana1 = window.open('ascar2.htm','ventana1','width=200,hei ght=200')
;abierta1=true;this.disabled = true">
<input type="button" name="boton" value="cerrar" onclick="cerrar()">
</body>
</html>
ascar2.htm
<script language="JavaScript" type="text/javascript">
window.onunload =
function(){opener.habilita
(this)}
</script>
</head>
<body>
<input type="submit" name="Submit" value="cerrar" onclick="self.close()">
</body>
</html>
A ver qué te parece....