F5 verhindern
salt
- javascript
hallo,
ich würde gerne den F5-reload-event verhindern.
dazu muss ich sagen, dass es sich bei dem betreffenden content nicht um eine öffentliche seite handelt und diese auch nicht in einem normalen browser dargestellt wird, sondern:
es handelt sich um ein window-form aus C# heraus, welches als engine den internet explorer nimmt.
dort baue ich mit ajax eine sich 1. aufbauende und 2. aktualisierende struktur auf. wenn F5 gedrückt wird (die häufigste reload-möglichkeit, wenn man keine buttons hat und das kontextmenü deaktiviert ist :) ), ist der default-content wieder drin.
ich müsste jetzt sehr komplex den aktuellen inhalt immer per ajax an den handler schicken, um ihn im falle eines (unerwünschten) reloads wieder in die seite einzupflegen. immer, weil ist nicht wissen kann, dass ich mich gerade vor einem reload-event befinde. und wenn einer eintritt, lässt sich nichts mehr senden. (habe schon eine zeit lang rumprobiert.)
fazit:
vll. kann mir jemand nen tip geben.
falls was unklar ist, führe ich das gerne auch noch näher aus :)
salt
Hallo Salt,
ich hatte letzte Woche genau das Gleiche Problem.
Du musst noch ein wenig weiter denken:
Was geschieht bei anderen Tastenkombinationen wie zB [STRG]+[T].
Der IE7 oeffenet im letzten Falle sogar einen neuen Tab! Was
geschieht mit [STRG]+[P] usw usf..?
Die [STRG]-Tastenkombinationen konnte ich in so weit abfangen, als
dass ich in der uebergeordneten Windows-Forms Applikation diesen
Tastenkuerzeln jeweils einen (leeren) Eventhandler zugeordnet habe.
Was das Problem mit F5 angeht, kann ich dir leider nicht weiterhelfen.
Ein Reload war bei meiner Applikation erlaubt. Aber versuch doch mal
das bereits auf der WindowsForms-Ebene abzufangen - mal schauen, ob
das vielleicht auch funktioniert..
Gruss,
Thes
Ich danke dir :)
Ich habs zwar jetzt noch nicht probiert - aber ich wette, dass man mit dem BrowserObjekt so einiges machen kann.
Ich frag mich nur, warum ich da drauf noch nicht gekommen bin.
Hallo salt,
vielleicht ist es ja sogar moeglich, saemtliche Tastenkombinationen
mit einer Funktion abzufangen, und in dieser Funktion dann nur die
entsprechenden Kombinationen an den Browser zu delegieren.
Lasse es mich wissen ;-)
Gruss
Thes
echo $begrüßung;
ich würde gerne den F5-reload-event verhindern.
Du kannst natürlich versuchen, Tastenkombinationen zu behindern. Was ist dann aber mit den anderen Möglichkeiten, einen Reload auszuführen? Beispielsweise aus dem Haupt- und Kontextmenü raus. Und was ist, wenn jemand den Inhalt der Adresszeile abschickt? Es gibt vielfältige Möglichkeiten, einen Request mehrfach abzusetzen, und es ist sicher nicht sehr sinnvoll, den Browser dermaßen einzuschränken, dass er gar nicht mehr bedienbar ist. Versuche bei einem Request auf der Serverseite zu entscheiden, ob er bereits bearbeitet wurde oder nicht. Du kannst dabei beispielsweise Einmal-Codes in die Requests einbauen, die du intern als erledigt kennzeichnest. Kommt nun ein Request mit diesem verbrauchten Einmal-Code, kannst du serverseitig die Verarbeitung abbrechen und dem Anwender die Zunge rausstrecken. Dabei bleibt auch noch sein Browser unbehelligt, und du musst dir keine Gedanken über eine übersehene, nicht deaktivierte Requestabsetzmöglichkeit machen.
echo "$verabschiedung $name";