2009-07-09 7 views
8

Ich habe eine Seite mit einem Formular, das über ajaxSubmit() übermittelt wird (also, ohne die Seite zu ändern).So verhindern Sie, dass der Benutzer die Seite mit jQuery ändern kann

Mein Ziel ist es, wenn der Benutzer versucht, die Seite zu wechseln (oder sogar den Browser zu schließen), frage ich ihn, ob die Seite wirklich verlassen möchte, ohne das Formular zu senden (genau wie Google Mail).

Google Mail zum Beispiel tun dies mit einem window.confirm-like Popup, aber wenn es möglich ist, werde ich gerne mit benutzerdefinierten Nachrichten und Optionen umgehen.

jQuery hat das Unload-Ereignis:

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

aber es erlaubt mir nur die Seite etwas vor Abfahrt zu tun; Ich muss den Seitenausstieg "blockieren", wenn der Benutzer auf die entsprechende Schaltfläche klickt.

Also, wie das Seitenende-Ereignis zu behandeln (und abzubrechen)?

Antwort

16

versuchen Sie Folgendes. here Demo

<script type="text/javascript"> 

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

     window.onbeforeunload = unloadPage; 

</script> 
+0

Ja, das ist es! Es tut mir leid, ich kann den "Alarm" nicht anpassen, aber ich denke nicht, dass ein großes Problem sein wird. – Strae

10

Es ist möglich, binden die "onbeforeunload" Ereignis mit jQuery:

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

Es funktioniert !!

Verwandte Themen