2009-07-09 9 views
8

Ho una pagina con un modulo che viene inviato tramite ajaxSubmit() (quindi, senza cambiare pagina).Come impedire all'utente di cambiare pagina con jQuery

Il mio obiettivo è che, quando l'utente tenta di cambiare pagina (o anche di chiudere il browser), gli chiedo se vuole davvero uscire dalla pagina senza inviare il modulo (esattamente come fa Gmail).

Gmail per esempio fa questo con un popup window.confirm-like, ma se è possibile, mi piacerebbe gestirlo con messaggi e opzioni personalizzati.

jQuery hanno l'evento unload:

$(window).unload(function() { alert("Bye now!"); }); 

ma permette me solo per fare qualcosa prima uscita della pagina; ho bisogno di 'bloccare' l'uscita della pagina, se l'utente fa clic sul relativo pulsante.

Quindi, come gestire (e annullare) l'evento di uscita dalla pagina?

risposta

16

provare quanto segue. Demo here

<script type="text/javascript"> 

     function unloadPage(){ 
      return "dont leave me this way"; 
     } 

     window.onbeforeunload = unloadPage; 

</script> 
+0

Sì, è così! Mi spiace non posso personalizzare la 'segnalazione', ma non penso che sarà un grosso problema. – Strae

10

E 'possibile legare l'evento "onbeforeunload" con jQuery:

$(window).bind('beforeunload', function(e) { 
    return "ATTENZIONE!!"; 
}); 

Funziona !!

Problemi correlati