2016-10-13 2 views
1

Ich möchte ein Popup mit persönlicher Nachricht anzeigen, wenn Benutzer den Browser schließen Ich habe viele ähnliche Skripte gefunden, aber sie arbeiten in Firefox und nicht in Chrom, Gibt es eine Lösung für dieses Problem?Wie kann ich meinen Code so ändern, dass er in allen Browsertypen ausgeführt wird?

window.onbeforeunload = function (event) { 
    var message = 'Important: Please click on \'Save\' button to leave this page.'; 
    if (typeof event == 'undefined') { 
     event = window.event; 
    } 
    if (event) { 
     event.returnValue = message; 
    } 
    return message; 
}; 

Auch bin ich mit der Nachricht nicht im Code, aber ich habe annother Meldung wie diese: "Cette Seite demande de confirmer sa fermeture; den données saisies pourraient ne pas enregistrées être"

+0

Bitte übersetzen Sie alle Nachrichten ins Englische; Stack Overflow ist nur auf Englisch, und ohne Übersetzung ist es schwierig zu verstehen, wovon Sie sprechen. –

Antwort

0

Nach Informationen bei https://developers.google.com/web/updates/2016/04/chrome-51-deprecations?hl=en#remove_custom_messages_in_onbeforeload_dialogs

ein onbeforeunload Unterkunft Fenster kann auf eine Funktion eingestellt werden, die einen String zurückgibt, die dem Benutzer in einem Dialogfeld angezeigt wird, um zu bestätigen, dass der Benutzer weg navigieren möchte. Dies sollte verhindern, dass Benutzer während der Navigation Daten verlieren. Leider wird es oft verwendet, um Benutzer zu betrügen.

Ab Chrome 51 wird dem Benutzer keine benutzerdefinierte Zeichenfolge mehr angezeigt. Chrome zeigt weiterhin einen Dialog an, um zu verhindern, dass Benutzer Daten verlieren. Der Inhalt wird jedoch vom Browser anstatt von der Webseite festgelegt.

Mit dieser Änderung wird Chrome mit Safari 9.1 und höher sowie mit Firefox 4 und höher konsistent sein.

Dies bedeutet, dass Sie keine benutzerdefinierte Nachricht auf dem onbeforeunload Ereignis erhalten können. Wenn der Benutzer tatsächlich daran erinnert werden soll, vor dem Beenden zu speichern, sollte die Standard-Browser-Nachricht grundsätzlich dieselben Informationen enthalten (und auf der Browser-Sprache des Benutzers basieren), so dass Sie diese Funktion nicht manuell implementieren müssen.

+0

Danke apokryfos! Ich wollte diese Funktion nicht für den Benutzer implementieren, um ihn daran zu erinnern, vor dem Beenden zu speichern, aber um ihn daran zu erinnern, dass einige Behandlungen geladen werden und er warten sollte, so dass es für diesen Fall keine Standard-Browser-Nachricht gibt. – user2285831

Verwandte Themen