Tengo una ventana example.com/welcome.php
. Usando window.open(abcd.php,"mywindow","...")
abro abcd.php
en una nueva ventana.
Usando window.close()
de abcd.php
. Cierro abcd.php
. ¿Cómo puedo desencadenar alguna acción en welcome.php
cuando se cierra abcd.php
Puede usar el evento onunload
adjunto a la ventana abierta;
var w = open('stackoverflow.com'); w.onunload = (ev) => { console.log('unload', ev); }; //w.close();
Actualizar
Configure la unload
incluso dentro del evento de load
para evitar unload
innecesarias en la ventana abierta, lo que me sucedió al menos en Chrome.
var w = open('https://stackoverflow.com/users/8424614/unnamedxaer'); w.onload = () => { w.onunload = (ev) => { console.log('unload', ev); }; };
Actualización 2
Las direcciones URL deben estar en el mismo dominio para funcionar; de lo contrario, obtendrá un error al intentar adjuntar un evento a la ventana abierta ( w
) (configure el depurador en la línea con onunload
), también deben ser servidos desde el mismo tipo de servidor: no se accede a archivos similares cuando la URL en el navegador se ve así c:/my-site/welcome.php
.
Aquí hay un ejemplo de trabajo . Abra la consola de CodeSandbox ubicada en la parte inferior de la ventana debajo de la sección del navegador para ver el resultado.