Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Code ausführen beim Browser schließen / Alternative zu stop?
Hallo,
folgendes Szenario:
Ich habe Word in ein (signiertes) Applet eingebettet (per SWT OLEFrame). Per Button im Applet kann das bearbeitete Dokument gespeichert werden. Soweit alles in Ordnung.
Lieber wäre es mir, wenn beim Schließen des Browsers automatisch gespeichert würde. Ich habe gehofft, dies wäre in der stop()-Methode möglich, klappt aber leider nicht. (speichern kann man mit OLEClientSite.save(File file, boolean b), bei diesem Einzeiler sollte das Problem also nicht liegen).
Alternativ habe ich versucht mit Javascript beim Browserbeenden (onunload) eine Appletmethode aufzurufen, scheint aber auch zu spät zu starten.
Hat jemand vielleicht eine Idee, wie ich meinen Speicheraufruf "rechtzeitig" (auf jeden Fall vor Applet.stop()) beim Schließen des Browsers ausführen kann?
Gruß Magnus
Einige Browser "vergessen" den von Sun vorgesehenen stop()-Aufruf vor der Ausführung der destroy()-Methode beim Schließen des Browsers. Daher musst du dafür die destroy()-Methode aus Applet überschreiben, die wird beim Schließen von jedem Browsers ausgeführt.
Habe vergessen zu erwähnen, dass ich das auch ausprobiert habe. In beiden Fällen wird der Code auch abgearbeitet (ist anhand der Ausgaben in der Java-Console zu sehen), aber es funktioniert leider nicht.
Laut Ausgaben ist die OleClientSite auch noch nicht "disposed" zu diesem Zeitpunkt. Seltsamerweise ist sie aber immer als "dirty" markiert, selbst wenn man das Dokument nicht verändert hat (vor dem Browser beenden ist das nicht so).
Trotzdem danke für die Antwort!
Magnus
Na klar... :roll:
Warum soll es nutzlos sein? Er soll sie ja auch nicht einfach nur aufrufen... die Methode ist doch von hause aus leer.
Er soll sie überschreiben. Dann wird sie auch sinnvoll ausgeführt. Immer und von jedem Browser.