Edit: Diese Frage ist anders, da ich für eine Lösung in 2017 Browser frage. Die andere Frage bezieht sich auf Browser seit Jahren. Auch gibt es keine Lösung. Es muss eine Lösung geben, und darum bitte ich.Html - beforeunload - Cross Browser
Ich habe ein Ereignis-Listener hinzugefügt:
addEventListener("beforeunload", MyBeforeUnload, false);
Ich habe meine Funktion:
function MyBeforeUnload() {
if(!g_IsSaved) {
return "You have not saved your data. If you leave this page without saving, your data will be lost.";
}else {
// Do not return anything if ok to leave
}
}
Dies löst und zeigt eine Warnmeldung im Internet Explorer.
Es löst die Funktion aus und gibt die Zeichenfolge korrekt zurück, ABER löst die Warnmeldung in Chrome, Edge oder Firefox beim Schließen des Browsers mit der Schaltfläche [x] oben rechts im Browser nicht aus.
Ist es möglich, diesen funktionierenden Cross-Browser 2017 zu bekommen?
Nichts hat sich seit den letzten paar Malen geändert. Siehe auch http://stackoverflow.com/q/11317573/215552, http://stackoverflow.com/q/4683221/215552, http://Stackoverflow.com/q/38879742/215552, http: // stackoverflow. com/q/1921941/215552 –
Der erste Link in Mikes 2. Kommentar hat eine besonders gute Antwort darauf, warum dies nicht möglich ist. – BSMP
Die Frage ist die gleiche, auch wenn sich die Antworten geändert haben. Wir möchten die Antworten auf eine bestehende Frage aktualisieren (wenn sie aktualisiert werden können) und keine neuen Kopien der Frage erstellen. –