Kann ich erkennen, wenn ein Benutzer mit der Zurück-Taste auf eine Seite gelangt?

9

Bearbeiten : Was ich wirklich wissen muss, ist, ob es ein JavaScript-Ereignis gibt, das zuverlässig ausgelöst wird, wenn der Benutzer über die Zurück-Schaltfläche auf die Seite gelangt. Ich habe das onload -Ereignis für das body -Element versucht, aber es feuert nicht auf Firefox oder Safari.

Ich arbeite mit altem Code, der versucht, die doppelte Übermittlung von Formulardaten zu verhindern, indem alle Schaltflächen zum Senden von Formularen deaktiviert werden, sobald der Benutzer auf einen klickt (indem er das onSubmit-Ereignis des Formulars abhört). Dieser Code wird auf jedes Formular in der App angewendet, unabhängig davon, ob die doppelte Übergabe ein Problem darstellt.

Das Problem ist, dass, wenn der Benutzer die Zurück-Schaltfläche in Firefox oder Safari drückt, alle Übermittlungsschaltflächen weiterhin deaktiviert sind, wenn er auf die Seite gelangt. In Firefox sind sie sogar nach einer Aktualisierung deaktiviert (nur eine Strg + F5 Aktualisierung wird es tun)!

Ich habe versucht, body 's onLoad event zu hören, aber FF und Safari feuern nicht, wenn Sie über die Zurück-Taste auf die Seite gelangen. (Interessanterweise wird bei einem Soft Refresh auf FF gefeuert, obwohl die Schaltfläche deaktiviert bleibt.)

Hier ist ein sehr einfaches HTML-Dokument, das zeigt, was ich meine:

%Vor%

Hinweis: Ich habe WinXP mit IE8, FF3.5, Safari 4, Opera 9 und Chrome 2.0 getestet. Nur Safari und FF lassen die Schaltfläche deaktiviert, wenn Sie zurück verwenden, um zu ihnen zu gelangen.

    
Kip 15.07.2009, 21:09
quelle

4 Antworten

1

Ich glaube nicht, dass Sie speziell auf die Zurück-Schaltfläche testen können, aber ich glaube, dass Sie die Verlaufs-Position des Browsers mit Javascript überprüfen können.

    
tkotitan 15.07.2009, 21:13
quelle
2

Ist das nicht das gewünschte Verhalten, sodass sie nicht mit der Zurück-Schaltfläche doppelt eingereicht werden?

Wie auch immer, Sie könnten auf der folgenden Seite einen Cookie setzen und diesen beim Laden auf der Seite mit dem Formular erkennen.

    
Kev 15.07.2009 21:15
quelle
2

Ja. In Javascript können Sie visited.value

verwenden %Vor%

Sie würden dies im Onload-Tag FYI nennen.

    
Eric 15.07.2009 21:18
quelle
0

Die Antwort von @tkotitan war wahrscheinlich richtig, als er sie schrieb. Seine Antwort führte mich zu meiner Lösung. Es ist nicht narrensicher, aber es könnte "gut genug" sein, um in manchen Situationen zu helfen.

Ich habe mein Skript verbessert und es durch Folgendes ersetzt. Diese Version ist für eine Zwischenseite, die jetzt in beiden Richtungen als Zwischenspeicher fungiert.

%Vor%     
TecBrat 20.06.2012 18:20
quelle

Tags und Links