2009-01-28 4 views
5

Ich habe eine Seite, wo ich ein "modales Fenster" öffne. Es ist wirklich nur ein DIV, mit einem IFRAME drin, wo ich eine andere Seite lade. Wenn ich die Seite aktualisieren möchte, öffnet der Browser ein Fenster mit der Frage "Möchten Sie wirklich von dieser Seite weg navigieren? Wenn Sie diese Seite neu laden, wird das modale Fenster ausgeblendet. Klicken Sie auf OK, um fortzufahren, oder auf Abbrechen, um auf der Seite zu bleiben aktuelle Seite."Wie lautet "Möchten Sie wirklich von dieser Seite weg navigieren?", Die in Browsern generiert werden?

Wie wird diese Nachricht generiert? Wie findet der Browser heraus, dass ich dort ein modales Fenster habe, weil ich keinen window.open() Aufruf von JavaScript verwende? Gibt es eine Möglichkeit, dieses Verhalten des Browsers zu deaktivieren.

+1

Lassen Sie mich wissen, auf welcher Website Sie arbeiten, damit ich es vermeiden kann. – finnw

+3

erm, stackoverflow tut das! Außerdem ist es eine gute Sache, keine Änderungen auf einer Seite zu verlieren. – Peter

+0

Deaktivieren Sie JavaScript in Ihren Browsereinstellungen. – Suncat2000

Antwort

3

Es kann body.onunload in der Quelle der im IFRAME geladenen Seite sein.

Da das modale Fenster im Wesentlichen ein IFRAME ist, weiß der Browser beim Schließen (oder Aktualisieren) des Hauptfensters, dass IFRAME gelöscht wird, daher wird in diesem IFRAME body.onunload ausgelöst.

+0

Sie haben Recht. Eigentlich arbeite ich mit dem Wicket Rahmen und ich suchte in ihren Quellcode, und schauen, was ich gefunden: window.onbeforeunload = function() {\t \t \t return „diese Seite neu geladen wird das modale Fenster verschwinden lassen.“ ; } \t \t \t \t Zum Glück kann dies leicht deaktiviert werden. Vielen Dank! – Gabriel

0

Dies könnte durch ein Skript verursacht werden alle Off-Site-Links Änderung dieser modalen Fenster anzuzeigen, und dann return true oder return false auf der Grundlage Ihrer Interaktion mit dem modalen Fenster.

Wenn Sie dieses Verhalten entfernen möchten, können Sie alle Klickereignisse für externe Links entfernen.

1

Wenn Sie eine Funktion haben, die vor dem Laden geladen wird, wird automatisch die Firefox-Nachricht generiert.

Sie können es deaktivieren, indem Sie null an der und Ihres Handlers zurückgeben.