Hi,
für eine Intranet-Anwendung (entwickelt für den IE)
möchte ich die Browser-Funktionalitäten BACK und REFRESH mittels JavaScript deaktivieren. Geht das? Wenn ja, wie?
Nein, geht nicht - auch nicht, wenn es sich um ein Intranet handelt.
Laß mich raten: Du hast ein Formular und willst verhindern, daß doppelte Einträge in der Datenbank durch Reload bzw. Zurückgehen und nochmal abschicken entstehen.
Die einzige Lösung ist, doppeltes Abschicken irgendwie zu erkennen und entsprechend zu reagieren.
Beispielsweise könntest du beim Ausliefern des Formulars eine eindeutige, aber zufällige ID generieren, welche du auch als "ausgeliefert" in einer Tabelle speicherst. Wenn das Formular zurückkommt, prüfst du als erstes, ob die mitgesendete ID als "ausgeliefert" bekannt ist. Wenn nein, dann ist das Formular wohl doppelt gesendet worden.
Wenn ja, dann setzt du den Zustand der ID auf "zurückgekommen" und verarbeitest die Formulardaten.
Wenn dir diese ID-Tabelle irgendwie zu groß wird, kannst du in regelmäßigen Abständen alte IDs löschen.
Durch die Aufteilung der IDs in "garnicht gespeichert", "ausgeliefert" und "zurückgekommen" kannst du im Fehlerfall gleich eine entsprechende Fehlermeldung ausgeben, die du nicht hättest, wenn du nur die ausgelieferten IDs speicherst und zurückgekommene IDs wieder löschst.
- Sven Rautenberg