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.
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%Tags und Links javascript cross-browser