Wie zuverlässig ist das Ereignis window.onbeforeunload
?
onbeforeunload
funktioniert in jedem Browser, in dem ich es jemals probiert habe. setTimeout
nicht innerhalb des Handlers verwenden. Es muss eine Zeichenfolge synchron zurückgeben, um das Entladen zu blockieren. Noch einmal, ich habe "nein" in meinem Kommentar gesagt, aber ich kann weiter ausführen. Wenn Sie einen Ereignishandler an Ihre Seite anhängen, um einen Klick auf einen Link zu erkennen, können Sie den onbeforeunload
-Handler manuell aufrufen, um die Zeichenfolgenantwort abzurufen. Verwenden Sie diese Option, um ein benutzerdefiniertes Bestätigungsfeld anzuzeigen und das Klickereignis aufzuheben damit. Beachten Sie, dass sich das nicht auf die Schaltflächen zum erneuten Laden, Zurück, Vorwärts oder Schließen auswirkt, sondern nur auf einen Link zu einer neuen Seite. Sie sollten auch darauf achten, dass Links zu Ankern auf derselben Seite oder javascript:void(null);
-Typ-Links nicht betroffen sind. Dadurch können Sie auch AJAX-Anfragen stellen, und wenn der Benutzer bestätigt, dass er die Seite verlassen möchte, können Sie einige Dinge tun, bevor Sie die neue Seite laden.
Kurz gesagt, es gibt in einigen Fällen Alternativen, aber alles stammt aus dem onbeforeunload
-Ereignis und kann ziemlich komplex sein.
Tags und Links javascript onbeforeunload