2016-08-05 5 views
0

Ich versuche zu erkennen, wenn der Benutzer eine Seite verlässt. Ich dachte, die .auf („Entladen“, fn) Methode sollte es tun:jQuery .on ("unload", fn) funktioniert nicht für mich

$(document).ready(function(){ 
    $(window).on("unload", function(){ 
    alert("Goodbye!"); 
    }); 
}); 

, aber es scheint nicht zu funktionieren. Wenn ich von der Seite weg navigiere, passiert nichts. Wenn ich "Entladen" in "Laden" ändere, wird die Warnmeldung beim Laden der Seite entsprechend angezeigt.

Ist dies der richtige Weg zu tun, was ich will?

Antwort

1

Vielleicht:

<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> 

Entnommen http://www.4guysfromrolla.com/demos/OnBeforeUnloadDemo1.htm

"beforeunload" wird ein Ereignis zuverlässiger als das "Entladen" sein, eine, die als veraltet zu gehen scheint. Ich habe auch gelesen, dass „beforeunload“ Ereignis zuverlässiger war, wenn sie von Javascript als von jQuery

So in Ihrem Fall genannt:

$(document).ready(function(){ 
     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?"; 
     } 
}); 
+0

die Live-Demo funktioniert, aber jQuery scheint nicht über die ‚Onbeforeunload‘ kennen Methode. :( –

+0

Sie können jQuery-Code in eine Javascript-Funktion schreiben (sei vorsichtig). Um es auf eine andere Weise zu sagen, fügen Sie einfach dieses Ereignis mit Javascript und machen Sie Ihre üblichen jQuery Zeug neben. – technico

+0

Code hinzugefügt, um Ihren Fall passen. – technico

Verwandte Themen