2016-07-22 16 views
-2

Meine Seite hat ein Formular mit vielen Informationen, die vom Benutzer gesammelt werden können. Wenn der Benutzer versucht, diese Seite zu schließen, sollte ein Bestätigungsfeld mit der Meldung angezeigt werden: "Möchten Sie diese Seite wirklich verlassen?".Firefox ignorieren zeigt bestätigen Warnmeldung

$(window).on('beforeunload',function(e){ 
    //alert code 
} 

Alles ist in Ordnung. Aber in Firefox, wenn ich die Suchleiste verwende, wird Firefox meine Warnung ignorieren und auf die Suchseite umleiten.

Irgendwelche Vorschläge?

Antwort

0

Sie können Code so etwas wie diese

$(window).bind('beforeunload', function() { 
    return 'Your custom message here'; 
}); 

schreiben Sie können Ihnen nicht benutzerdefinierten Popup in beforeunload Methode erzeugen.

1

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.