"Back"-Button elegant(!) ausschalten.
gr@phics.de
- javascript
Gudde!
Bevor ich gleich von allen Hobby- und Profientwicklern aufs Dach bekomme, da ja jeder dem User seiner Seiten einen hoechstmoeglichen Freiraum bieten moechte, sei hier erwaehnt, dass ich an einem grossen PHP-mySQL-Intranet-Projekt arbeite (Datenbank des Galapagos-Nationalparks), und da die Mitarbeiter bisher immer mit Access ihre Daten eingegeben haben, was ja automatische Aktualisierungen en masse unterstuetzt, gibt es unabsehbare Probleme, wenn beim Eingeben der Daten auf den Back-Button geklickt werden kann und dabei Pages mit veralteten Daten angezeigt werden (und alte Daten evtl. noch einmal gesendet werden). Ausserdem arbeiten die Leute aeussert zuegig, deshalb kann es passieren, dass aus Versehen mal auf den "Backspace"-Button gedrueckt wird, obwohl man sich nicht in einem Textfeld befindet, und sich dadurch ebenfalls die vorherige Seite laedt.
Dem Selfhtml-Javascript-Teil habe ich entnommen, dass man die History nicht loeschen kann (stimmt das?). Den Back-Button kann man bestimmt einfach mit Javascript ausschalten (nur wie?), allerdings ist dann nicht das Problem geloest, was passiert, wenn der Benutzer anschliessend ins Internet will und dort auch nicht mehr "Zurueck" (hier heisst das "Atrás" :-) kann...
Hat jemand hierzu ein paar kreative Ideen? Oder einen Link?
Ich bedanke mich. gr@phics.de
Hallo.
Hat jemand hierzu ein paar kreative Ideen? Oder einen Link?
http://selfhtml.teamone.de/javascript/objekte/location.htm#replace
Gruß
Norbert
Ja, Norbert, danke,
aber den Link hatte ich auch schon gefunden. Das Problem ist, dass es nicht bei Formularen funktioniert (mit denen ich ja in erster Linie arbeite). Wenn ich sowas wie
<form action="javascript:location.replace('test.php')" method="post">
in meinen Quelltext einbaue, werden die Inhalte aller Input-Felder nicht uebergeben. Und mit Javascript eine location zusammenbasteln hat natuerlich auch keinen Sinn, wenn man auch lange Texte in die Datenbank schreiben will.
Gruss. gr@phics.de
aber den Link hatte ich auch schon gefunden. Das Problem ist, dass es nicht bei Formularen funktioniert (mit denen ich ja in erster Linie arbeite). Wenn ich sowas wie
<form action="javascript:location.replace('test.php')" method="post">
in meinen Quelltext einbaue, werden die Inhalte aller Input-Felder nicht uebergeben. Und mit Javascript eine location zusammenbasteln hat natuerlich auch keinen Sinn, wenn man auch lange Texte in die Datenbank schreiben will.
Wie wär's hiermit:
<script type="text/javascript" language="JavaScript">
<!--
history.forward();
//-->
</script>
Muss natürlich in jeder Seite eingebaut werden. Wenn in der History nach der aktuellen Seite eine weitere steht, wird auf diese weitergeleitet. Aber wie das mit den Formulardaten ist, weiß ich nicht genau, musst du eben ausprobieren.
Gruß
Norbert
Danke, Norbert,
Das hat mir schon etwas weitergeholfen. Falls es dich interessiert: Mit dem IE gibts keine Probleme, der speichert die Formulardaten ja wunderbar ab. Netscape macht das - glaube ich mich zu erinnern - nicht, aber alle Mitarbeiter des Parkes arbeiten mit dem IE (habe auch die "all"-Javascript-Funktion genutzt), deshalb ist das kein Problem.
Ich muss Gottseidank nicht alle Seiten aendern, da ich eine einzige schoene index.php mit Ausgabe fuer alle Pages erstellt habe.
Was noch uebrig bleibt: Der Wechsel zwischen Seiten hat seine Probleme, wenn ich mit ausblendbaren Formularelementen arbeite: Wenn ich sie per Javascript wieder aktiviert habe, dann BACK und automatisch wieder FORWARD geleitet werde, werden die Formularelemente wieder ausgeblendet.
Grundsaetzlich waere ein Abschalten des BACK-Buttons das beste, aber weil das nicht moeglich zu sein scheint, resigniere ich eben :-)
gr@phics.de
Hat jemand hierzu ein paar kreative Ideen? Oder einen Link?
Mach doch die Seite über einen Link in einem neuen Fenster ohne Icons auf. Damit fehlt auch der Back Button. BACK geht zwar auch per Contextmenü, aber das benutzt kaum einer.
Reinhard