Beim Bearbeiten einer Seite in meinem System kann ein Benutzer entscheiden, zu einer anderen Website zu navigieren, und dabei alle Änderungen verlieren, die er nicht gespeichert hat.
Ich möchte jeden Versuch abfangen, zu einer anderen Seite zu wechseln und den Benutzer aufzufordern, sicherzugehen, dass dies geschehen soll, da er möglicherweise seine aktuelle Arbeit verlieren könnte.
Google Mail tut dies auf sehr ähnliche Weise. Erstellen Sie beispielsweise eine neue E-Mail, geben Sie sie in den Nachrichtentext ein und geben Sie einen neuen Speicherort in die Adressleiste ein (z. B. twitter.com oder ähnliches). Sie werden gefragt, ob Sie sicher sind.
Ideen, wie man das repliziert? Ich ziele auf IE8 ab, möchte aber auch mit FF & Chrome kompatibel sein.
quelle
Antworten:
Ähnlich wie Ghommeys Antwort, unterstützt dies jedoch auch alte Versionen von IE und Firefox.
quelle
var foo, bar;
ist das gleiche wievar foo;
var bar;
Siehe diesen Artikel. Die Funktion, nach der Sie suchen, ist das Onbeforeunload
Beispielcode:
quelle
Anstelle eines nervigen Bestätigungs-Popups wäre es schön, die Verzögerung ein wenig (innerhalb von Millisekunden) zu verzögern , um das erfolgreiche Posten der nicht gespeicherten Daten auf dem Server zu verwalten, den ich für meine Site verwaltet habe, indem ich Dummy-Text wie folgt auf die Konsole geschrieben habe:
Bearbeiten: Siehe auch Synchronous_AJAX und wie das mit jquery geht
quelle
SCHEDULED_REQUEST
Objekt sammelt alle nicht dringenden Informationen, die wie ein Datenpuffer an den Server gesendet werden sollen, und verbindet effektiv mehrere Anforderungen mit einer (natürlich ist die URL dieser Anforderungen dieselbe). Die Verwendung einer synchronen Ajax-Anforderung vor dem Entladen sollte das Problem, wie gesagt, browserübergreifend lösen. Vielen Dank für Ihren wertvollen Kommentar!Ich habe Benutzer, die nicht alle erforderlichen Daten ausgefüllt haben.
quelle