Mantén la atención ya que en esta división hallarás la respuesta que buscas.
Solución:
Siempre puede llamar a su función antes de salir de la página.
function myfun()
// Write your business logic here
console.log('hello');
antes de descargar:
window.onbeforeunload = function()
myfun();
return 'Are you sure you want to leave?';
;
O con jQuery:
$(window).bind('beforeunload', function()
myfun();
return 'Are you sure you want to leave?';
);
Esto solo le preguntará al usuario si desea abandonar la página o no, no puede redirigirlo si elige permanecer en la página. Si seleccionan irse, el navegador irá a donde le dijeron que fuera.
Puede usar onunload para hacer cosas antes de que se descargue la página, pero no puede redirigir desde allí (Chrome 14+ bloquea las alertas dentro de onunload):
window.onunload = function()
myfun();
alert('Bye.');
O con jQuery:
$(window).unload(function()
myfun();
alert('Bye.');
);
Simplemente llame a su función desde dentro window.onbeforeunload
. Tenga en cuenta que algunos navegadores restringen lo que puede hacer aquí (p. ej., no redirecciones ni alertas). Consulte: https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload para obtener más información.
También he añadido el código apropiado para los lectores que hacer desea mostrar un cuadro de diálogo de confirmación.
function doSomething()
//do some stuff here. eg:
document.getElementById("test").innerHTML="Goodbye!";
function showADialog(e) window.event).returnValue = confirmationMessage; // Gecko and Trident
return confirmationMessage; // Gecko and WebKit
window.addEventListener("beforeunload", function (e)
//To do something (Remember, redirects or alerts are blocked here by most browsers):
doSomething();
//To show a dialog (uncomment to test):
//return showADialog(e);
);
Simplemente presione ‘Ejecutar’ para probar: http://jsfiddle.net/2Lv4pa9p/1/
valoraciones y comentarios
Si para ti ha resultado provechoso nuestro artículo, sería de mucha ayuda si lo compartieras con otros seniors de esta manera contrubuyes a dar difusión a este contenido.