Muchas páginas web intentan que no salgas de ellas usando el evento beforeUnload en JS. Facebook, por ejemplo, mostrará una advertencia si intenta usar el botón de retroceso/adelante, como muestra la imagen a continuación:
Para evitar esto, siempre usé el siguiente código para 'desvincular' el evento:
window.onbeforeunload = null;Pero esto ya no funciona. Incluso después de ejecutar el código a continuación, el mensaje de advertencia seguirá apareciendo si intento salir de la página.
¿Cómo deshacerse realmente de estos mensajes en una aplicación web? Facebook es solo un ejemplo, estoy tratando de hacer esto usando JS con fines de estudio.
Es probable que el evento se registre a través de addEventListener en lugar de onbeforeunload . Puede intentar agregar un nuevo detector de eventos que anule al anterior.
window.addEventListener("beforeunload", (event) => { event.stopImmediatePropagation(); }, true); Si el tercer parámetro es true , el evento se reducirá por completo, por lo que se evitará cualquier otro oyente.