Beim Verlassen einer Seite Hinweis (wie bei google mail)
peterlo
- javascript
Hallo!
Ich würde gern in meine Seite folgendes einbauen:
wenn der Seitenbesucher die Seite verläßt, soll er einen Hinweis bekommen, dass er eine bestimmte Aktion noch nicht abgeschlossen hat.
Nur wenn er einen bestimmten Link anklickt, soll er den Hinweis nicht bekommen.
Ich kenne das von Google Mail. Wenn man da bspw. eine Mail schreibt, die aber nicht absendet, sondern einfach auf eine andere Webseite geht oder auch den Tab schliesst, gibt Google Mail einen Hinweis aus, dass die Mail noch nicht versendet worden ist bzw. nicht in den Mailentwürfen liegt.
Wird das da per onblur() realisiert? Wenn ja, wie kann ich es hinbekommen, dass der Hinweis NICHT kommt, wenn ein bestimmter WEITER-Link angeklickt wird?
Vielen Dank
peter
Mahlzeit peterlo,
Wird das da per onblur() realisiert?
http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onunload@title=Nein.
Wenn ja, wie kann ich es hinbekommen, dass der Hinweis NICHT kommt, wenn ein bestimmter WEITER-Link angeklickt wird?
Sorge z.B. dafür, dass beim Klick auf diesen bestimmten Link eine globale Variable einen wohldefinierten Wert annimmt, auf den Du sie dann beim Eintritt des o.g. Ereignisses hin abprüfen kannst - damit weißt Du, ob und wenn ja was Du ggf. einblenden musst.
MfG,
EKKi
Sorge z.B. dafür, dass beim Klick auf diesen bestimmten Link eine globale Variable einen wohldefinierten Wert annimmt, auf den Du sie dann beim Eintritt des o.g. Ereignisses hin abprüfen kannst
Und dann ist was zu tun?
Mathias
Mahlzeit molily,
Sorge z.B. dafür, dass beim Klick auf diesen bestimmten Link eine globale Variable einen wohldefinierten Wert annimmt, auf den Du sie dann beim Eintritt des o.g. Ereignisses hin abprüfen kannst
Und dann ist was zu tun?
Frag das doch bitte den Threadstarter und nicht mich ...
MfG,
EKKi
Frag das doch bitte den Threadstarter und nicht mich ...
»wenn der Seitenbesucher die Seite verläßt, soll er einen Hinweis bekommen, dass er eine bestimmte Aktion noch nicht abgeschlossen hat.«
Wie willst du das mit unload lösen?
Mathias
Mahlzeit molily,
Frag das doch bitte den Threadstarter und nicht mich ...
»wenn der Seitenbesucher die Seite verläßt, soll er einen Hinweis bekommen, dass er eine bestimmte Aktion noch nicht abgeschlossen hat.«
Wie willst du das mit unload lösen?
Indem ich http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onunload@title=onunload ein entsprechendes http://de.selfhtml.org/javascript/objekte/window.htm#alert@title=alert() anzeige. Es ging darum, dem Benutzer einen Hinweis zu zeigen ... nicht, ihn zu fragen, ob er sich sicher ist, dass er die Seite wirklich verlassen will, weil ja noch dies-und-das nicht abgeschlossen ist und ob er nicht lieber zurück möchte usw. ... dann wäre in der Tat eine Abfrage per http://de.selfhtml.org/javascript/objekte/window.htm#prompt@title=prompt() - die natürlich sinnvollerweise onbeforeunload erfolgen muss - sinnvoller.
Aber danach war - wie gesagt - nicht gefragt.
MfG,
EKKi
dann wäre in der Tat eine Abfrage per prompt() - die natürlich sinnvollerweise onbeforeunload erfolgen muss
Bei beforeunload braucht man kein prompt und der prompt nützt auch nichts. Der Rückgabewert alleine erzeugt ein vom Browser bestimmtes Dialogfenster.
Aber danach war - wie gesagt - nicht gefragt.
Google Mail war als Beispiel genannt, und da wird beforeunload verwendet.
Mathias
Mahlzeit molily,
Aber danach war - wie gesagt - nicht gefragt.
Google Mail war als Beispiel genannt, und da wird beforeunload verwendet.
Ich frage mich immer, wo das Problem liegt, dann beim entsprechenden Vorbild im Quellcode mal nachzuschauen ... ich meine, wenn der Threadstarter schon "wie bei google mail" in den Titel schreibt und die Funktionalität von dort kennt - was hindert ihn dann daran, sich anzuschauen, wie die das gemacht haben und das entsprechend "zuhause" nachzubauen?
MfG,
EKKi
was hindert ihn dann daran, sich anzuschauen, wie die das gemacht haben und das entsprechend "zuhause" nachzubauen?
In den Quellcode von Google-Webanwendungen kann man nicht einfach reinschauen. Abgesehen davon, dass der Code "minified" ist, sind es einfach dutzende Scripte von enormer Größe. Selbst wenn man weiß, wonach man suchen muss, ist es schwer zu finden. beforeunload findet man dann in einem solchen Kontext:
696c.lUa(x);c.DWc(new Vt(c));c.nXc(new xs(l));c.LZc(new st(top));hna(c);c.FZc(new qt(c));j.XTa(c);j.x2c();g.lUa(x);g.xUa(p);Xf.XTa(c);this.pO=c;mna(c);gu=this};du[r].u6a=function $0D(a,b,c,e){var f=new us;f.aUa(a);f.HUa(b);var g=new Eq;f.maa(g);if(c&&!Oea){var h=new vs;h.qqc(top,e);f.maa(h)}this.Fqb(f);this.Aqb(f);return f};du[r].Fqb=function $1D(){};du[r].Aqb=function $2D(){};var wF="canvas_frame",iya="Lpuind",jya="e7Tcgd",kya="xN0XZb",xF="unload",lya="beforeunload";
Alles klar? ;) Da wird der Event-Name in einem String gespeichert, jetzt könnte man wiederum lya suchen. Dann findet man irgendwo:
this.w.l(window,lya,this.kHa);
Das ist wahrscheinlich das Registrieren des Handlers. Der Handler vermutlich:
du[r].kHa=function $8D(a){var b=this.pO.Lxa();if(b)a.Yg.returnValue=b;else E||this.kib()};
Also da wird man nicht wirklich schlau draus...
Mathias
Wird das da per onblur() realisiert? Wenn ja, wie kann ich es hinbekommen, dass der Hinweis NICHT kommt, wenn ein bestimmter WEITER-Link angeklickt wird?
onunload bereitet dir mehr freude, onblur wird nur ausgeführt, wenn etwas den focus verliert aber "da" bleibt
wenn der Seitenbesucher die Seite verläßt, soll er einen Hinweis bekommen, dass er eine bestimmte Aktion noch nicht abgeschlossen hat.
Das Stichwort lautet unbeforeunload.
Mathias