Tengo un archivo html muy simple con un fragmento de JavaScript que contiene un detector de eventos beforeunload :
<!DOCTYPE html> <html lang="en"> <body> hello world </body> <script> window.addEventListener("beforeunload", (event) => { alert("hello"); }); </script> </html> Según la documentación de descarga previa de beforeunload , esperaba ver una alert('hello') emergente cuando cierro mi pestaña. En cambio, la pestaña se cierra sin que suceda nada más. ¿Alguien sabe qué puedo estar haciendo mal? ¡Gracias!
Según la documentación de Mozilla, para Chrome también debe establecer el valor de retorno.
<!DOCTYPE html> <html lang="en"> <body> hello world </body> <script> window.addEventListener("beforeunload", (event) => { event.preventDefault() event.returnValue = ''; alert("hello"); }); </script> </html>El problema que podría enfrentar es que, una vez que abre la página, debe hacer clic en la página para activarla, luego, una vez que haga clic para cerrar la pestaña, debería recibir el mensaje "¿Está seguro?".
Aunque, incluso entonces... La alerta no funciona. Sin duda, esto se relacionaría con la pequeña nota en la parte superior de la documentación que dice que es para evitar las molestas ventanas emergentes.