Wie behandelt Facebook den Onbeforeunload-Bestätigungsdialog?

8

Beim Durchsuchen von Facebook im neuesten Chrome unter OSX habe ich festgestellt, dass das Eingeben eines Kommentarfelds und das Klicken auf einen anderen Link oder das Drücken der Zurück-Taste ein Bestätigungsfenster auslöst, in dem ich gefragt habe, ob ich gehen möchte:

Da ich ein Entwickler einer alten Schule war, hatte ich geglaubt, dass die einzige Möglichkeit darin bestünde, ein onbeforeunload -Ereignis an die Seite anzuhängen, um mit dem Zurück-Knopfklick fertig zu werden. Ich weiß, dass Sie eine globale Bindung für die Anker machen können, um onbeforeunload zu simulieren, aber ich war überrascht, dass sie eine benutzerdefinierte Bestätigung und nicht den Standard-Bestätigungsdialog hatten.

Wie haben sie das gemacht? Ist dies eine Art von HTML5-Fensterverlauf oder Push-Ereignis-Trigger?

    
Corey Ballou 04.02.2014, 15:33
quelle

1 Antwort

2

Ok, ich fand diese Antwort auf Stackoverflow hier .

Dies behandelt die onbeforeunload .
Um dies in Ihrem Browser zu testen, setzen Sie einfach

%Vor%

in Ihre Konsole, drücken Sie die Eingabetaste und versuchen Sie es mit der Zurück-Taste.

Nun zu Ihrer wirklichen Antwort:

Facebook behandelt das Drücken der Zurück-Taste in der oben beschriebenen Weise (wie ich getestet habe) und die cancel(l)ing eines Kommentars durch Klicken auf einen anderen Link auf der Seite mit dem div , der in Ihrer Frage erscheint.

Bearbeiten

Wenn es möglich wäre zu verhindern, dass der Browser den AJAX -Kontext verlässt, würde dies funktionieren (fügen Sie ihn in der Konsole hinzu):

%Vor%

Ich habe hier geantwortet, da Facebook es nicht tut, was deine erste Frage war. Aber ich hoffe aufrichtig, jemand beweist es falsch!

    
loveNoHate 04.02.2014 16:02
quelle