Kann ich pop-up dialog wenn der Benutzer das Fenster schließen in Safari/Chrome?
Im IE und FF, ich kann fügen Sie einen Ereignis-handler onBeforeUnload, und durch die übergabe einer Zeichenfolge eine Eigenschaft der Veranstaltung, wird dem Benutzer ein Dialogfeld fragt ihn, ob er weitermachen will mit der "entladen" (entweder das Fenster schließen oder zu verlassen).
Safari und Chrome nicht unterstützen, onBeforeUnload und onUnload scheint zu spät zu sein.
Gibt es eine Möglichkeit, zu replizieren die gleiche Funktionalität in Safari/Chrome?
HINWEIS: ich versuche nicht zu halten, die Nutzer als Geisel genommen. Ich weiß, das ist nörgeln und un-cool. In der Tat, meine Website geht auf große Längen zu lassen, die user gehen frei, und haben alles an seinem Platz, wenn Sie zurückkommen.
Jedoch, ich bin hosting anderen Seiten innerhalb IFrames, und manchmal diese entscheiden, um mich loszuwerden und übernehmen Sie den browser, das ist, was ich versuche zu vermeiden.
Dank!
Ich weiß, und danke für die Anregung. Wir haben allerdings ein GANZ anderes Ziel, als Digg, und (glauben wir zumindest) haben wir einen guten Grund, dies zu tun, es gibt einige echte Funktionalität.
InformationsquelleAutor Daniel Magliola | 2009-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese funktioniert einwandfrei bei mir in Chrome und Safari:
Wenn ich versuche das Fenster zu schließen, bekomme ich die Aufforderung.
Kann ich rufen Sie das übergeordnete Fenster zu aktualisieren, wenn Sie schließen das Kind mit dieser Methode? oder kann ich diesen Aufruf eine andere js-Funktion statt der Bestätigung ?
Die
onbeforeunload
handler hat eine Reihe von Einschränkungen auf, was Sie tun können. Ich bin mir nicht genau sicher, was thay sind, und Sie sind wahrscheinlich variieren zwischen Browsern. Sollten Sie es testen, aber ich wäre skeptisch, dass es funktionieren würde, überall, jetzt und in der Zukunft.Der Schlüssel Teil diese, die ich verpasste zunächst ist die Rückgabe ein string-Wert. In Chrome einfach " function() { alert('Sicher?'); }' wird nicht funktionieren.
InformationsquelleAutor RichieHindle
StackOverflow nutzt selbst
onbeforeunload
, und es funktioniert gut für mich in der Safari:InformationsquelleAutor Brian Campbell
Ich habe es in chrome und es scheint zu funktionieren gut mit diesem:
onUnload seems to be too late
.InformationsquelleAutor Ogie
Dieser Frage bedeckt ist, in ein bisschen mehr detail in einem anderen neueren StackOverFlow-Frage:
Einstellung onbeforeunload auf das body-element in Chrom und IE mit jQuery
InformationsquelleAutor AnthonyVO