beforeunload auf IE 11 - Benutzer nicht auffordern, funktioniert nicht
Beim Hinzufügen eines Listeners zum globalen Fensterobjekt für dasbeforeunload
Event, IE 11 (und 10) verhält sich nicht wie Chrome und Firefox.
Normalerweise geben Sie eine Zeichenfolge zurück, die zum Auffüllen der browsereigenen Eingabeaufforderung verwendet wird, oder Sie geben eine leere Zeichenfolge zurück, wenn das Dialogfeld den Benutzer nicht auffordern soll.
In IE 11 jedoch, wenn Sie eine leere Zeichenfolge zurückgeben und / oder das @ setzevt.returnValue
ei einer leeren Zeichenfolge wird das browserbasierte Dialogfeld "Abwesend navigieren" geöffnet und der Benutzer wird aufgefordert, zu bestätigen, dass er möglicherweise nicht gespeicherte Änderungen verlier
Gibt es eine Möglichkeit (ohne den Ereignis-Listener entfernen zu müssen), dass der Dialog nicht in IE 11 angezeigt wird?
Sieh mein JSFiddle (im IE - da dies in Chrome, Firefox und Safari ordnungsgemäß funktionieren sollte).
Hier ist die Quelle in der Geige:
var isDirty = false;
var message = '** You have unsaved changes. **'
window.addEventListener('beforeunload', function(evt){
if(isDirty) {
evt.returnValue = message;
return message;
}
delete evt.returnValue;
return "";
});