Das Ereignis beforeunload
wird ausgelöst, wenn das Fenster, das Dokument und seine Ressourcen entladen werden sollen.
Wenn der Ereigniseigenschaft returnValue
eine Zeichenfolge zugewiesen wird, wird ein Dialogfeld angezeigt, in dem die Benutzer zur Bestätigung aufgefordert werden, die Seite zu verlassen. Wenn kein Wert angegeben wird, wird das Ereignis still verarbeitet:
window.addEventListener("beforeunload", (event) => {
event.returnValue = null;
});
// is equivalent to
window.addEventListener("beforeunload", (event) => {
event.preventDefault();
});
WebKit-basierter Browser möglicherweise nicht der Spezifikation für das Dialogfeld folgen. Ein fast Cross-Browser-Arbeitsbeispiel:
window.addEventListener("beforeunload", (event) => {
const confirmationMessage = "your message";
event.returnValue = confirmationMessage;
return confirmationMessage;
});
HINWEIS Wenn dieses Ereignis einen Nicht-Leerwert zurückgibt, wird der Benutzer aufgefordert, die Seite entladen zu bestätigen. In den meisten Browsern wird der Rückgabewert des Ereignisses in diesem Dialogfeld angezeigt. In Firefox 4 und höher wird die zurückgegebene Zeichenfolge dem Benutzer nicht angezeigt. Stattdessen zeigt Firefox eine eigene vordefinierte Zeichenfolge an.
Seit 2011 sind die HTML5-Spezifikation besagt, dass zu window.alert()
nennt, window.confirm()
und window.prompt()
Methoden können während dieses Ereignisses ignoriert werden.
Beachten Sie auch, dass verschiedene mobile Browser das Ergebnis des Ereignisses ignorieren (dh sie fragen den Benutzer nicht nach Bestätigung). Firefox hat eine versteckte Präferenz in about:config
, um das Gleiche zu tun. Dies bedeutet im Wesentlichen, dass der Benutzer immer bestätigt, dass das Dokument entladen werden kann.