Interceptar evento de salida de página
Al editar una página dentro de mi sistema, un usuario puede decidir navegar a otro sitio web y, al hacerlo, podría perder todas las ediciones que no haya guardado.
Me gustaría interceptar cualquier intento de ir a otra página y pedirle al usuario que se asegure de que quiere que esto suceda, ya que podría perder su trabajo actual.
Gmail hace esto de una manera muy similar. Por ejemplo, redacte un nuevo correo electrónico, comience a escribir en el cuerpo del mensaje e ingrese una nueva ubicación en la barra de direcciones (digamos twitter.com o algo así). Le preguntará "¿Está seguro?"
¿Ideas sobre cómo replicar esto? Mi objetivo es IE8, pero también me gustaría ser compatible con Firefox y Chrome.
Similar a la respuesta de Ghommey, pero también es compatible con versiones antiguas de IE y Firefox.
window.onbeforeunload = function (e) {
var message = "Your confirmation message goes here.",
e = e || window.event;
// For IE and Firefox
if (e) {
e.returnValue = message;
}
// For Safari
return message;
};
Vea este artículo. La característica que estás buscando es onbeforeunload.
Código de muestra:
<script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?";
}
</script>