2011-09-04 16 views
9

Estoy tratando de dar un cuadro de diálogo de confirmación de alerta cuando los usuarios intentan navegar ... Tengo el siguiente código pero no funciona ...Cómo usar JS/jquery para confirmar cuando se navega fuera de la página

jQuery(window).unload(function() { 
     var yes = confirm("You're about to end your session, are you sure?"); 
     if (yes) { 
      return true; 
     } else { 
      return false; 
     } 
    }); 

El emergente aparece bien, pero cuando hago clic en "NO", que todavía se desplaza fuera ...

Gracias por mirar ...

Respuesta

41

No hay necesidad de JQuery:

window.onbeforeunload = function() { 
    return "You're about to end your session, are you sure?"; 
} 

Demostración: http://jsfiddle.net/AlienWebguy/4fNCh/

+0

perfecto! esto funciona un encanto ... Lo marcaré correctamente cuando el tiempo lo permita ... ¡Gracias! –

+0

Quizás le gustaría agregar esta solución a http://stackoverflow.com/questions/821011/how-do-you-prevent-javascript-page-from-navigating-away también? –

+0

@Arnout Engelen Done :) http://stackoverflow.com/questions/821011/how-do-you-prevent-javascript-page-from-navigating-away/7296750#7296750 – AlienWebguy

3

esto no funciona en Firefox, en IE y Chrome, lo anterior funciona bien.

podemos tratar en Firefox

window.onbeforeunload = function() { 
    return confirm("You're about to end your session, are you sure?"); 
} 

Pero esto presenta 2 cajas de diálogo con el mensaje uno por encima y otro con el mensaje genérico que se ve sucio

Cuestiones relacionadas