2015-04-15 44 views
6

Ich versuche, dem Benutzer eine Nachricht anzuzeigen, bevor er das Fenster schließt. Ich benutze SweetAlert (http://tristanedwards.me/sweetalert), die gut läuft.Starten von SweetAlert, um zu verhindern, dass Benutzer das Fenster schließt

Das Problem ist, mit dem JavaScript/jQuery mich wissen zu lassen, wenn der Benutzer versucht, das Fenster/Tab zu schließen und dann etwas zeigen ihn schließt, um die Seite zu verhindern, wenn er wieder einrastet.

Ich habe dies versucht, aber es zeigt die hässliche übliche Nachricht auf meiner SweetAlert, irgendwelche Ideen? Ohne das Rückteil schließt es das Fenster trotzdem, ich habe versucht:/

+0

können Sie es auf Ihrer Website arbeiten zeigen? Nur durch diesen Code-Ausschnitt wird es schwierig, das Problem zu lösen. –

+0

Ich denke, es ist Browser-Standard, so gibt es keine Möglichkeit zu verhindern, dass die Standardwarnung angezeigt wird, wenn der Benutzer versucht, den Browser zu schließen. –

+0

Verwenden Sie 'return;' anstelle der aktuellen, die Sie verwenden –

Antwort

7

You can't disable the alert, nor change the style of the alert on onbeforeunload. Der Hauptgrund ist für Sicherheitsprobleme.

Von MDN Dokument, WindowEventHandlers.onbeforeunload, sagt er,

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 die Zeichenfolge "Diese Seite fordert Sie auf, zu bestätigen, dass Sie gehen möchten - Daten, die Sie eingegeben haben, werden möglicherweise nicht gespeichert." Siehe Bug 588292.

Seit dem 25. Mai 2011 gibt die HTML5-Spezifikation an, dass Aufrufe der Methoden window.alert(), window.confirm() und window.prompt() während dieses Ereignisses ignoriert werden können. Weitere Informationen finden Sie in der HTML5-Spezifikation.

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 Einstellung in: config, um das Gleiche zu tun. Dies bedeutet im Wesentlichen, dass der Benutzer immer bestätigt, dass das Dokument entladen werden kann.

Verwandte Themen