Ich habe ein Applet, das ziemlich lange zu starten ist, aber die für meine Anwendung benötigt wird.Weitergabe von JavaScript-Callback an Java-Applet deployed mit Hilfe von deployJava
Ich habe einen JavaScript-Rückruf registriert: jsAppletIsStarted. Dieser Rückruf wurde am Ende der Ausführung der Startmethode des Applets aufgerufen.
Der Code sah mehr oder weniger wie folgt aus:
<script>
var jsAppletIsStarted = function(){/*do some useful stuff*/};
</script>
<applet id=".." etc>
<param name="appletStartedCallBack" value="jsAppletIsStarted "/>
</applet>
Und es wie ein Charme.
Ich musste zu einem anderen Weg wechseln, um das Applet zu starten: mit der Methode deployJava.runApplet().
Der Code sieht nun wie folgt aus:
<script>
var jsAppletIsStarted = function(){/*do some useful stuff*/};
var attributes = {};
attributes.code = "myAppletClass.class";
attributes.codebase="myCodeBase";
var parameters = {};
parameters.appletStartedCallBack="jsAppletIsStarted " ;
var version = '1.6' ;
deployJava.runApplet(attributes, parameters, version);
</script>
Und der Rückruf wird nicht mehr erkannt. In meiner Java-Konsole habe ich den folgenden Fehler.
12:26:24,655 ERROR com.mypackage.JavaScriptCallBack -
netscape.javascript.JSException: No such method "jsAppletIsStarted" on JavaScript object
netscape.javascript.JSException: No such method "jsAppletIsStarted" on JavaScript object
at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source) at
sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source) at
sun.plugin2.main.client.MessagePassingJSObject.call(Unknown Source) at
com.mypackage.JavaScriptCallBack.callJsCallBack(JavaScriptCallBack.java:131)
com.myapplet.MyApplet.start(MyApplet.java:662) at
sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at
java.lang.Thread.run(Unknown Source)
Gibt es einen Hack die JavaScript-Rückrufe als Parameter an das Applet für die Verwendung mit deployJava.js passieren?
Könnte in diesem Fall funktionieren, aber ich habe andere Javascript-Funktionen zu übergeben, von denen ich den Rückgabewert erhalten muss ... showDocument erlaubt es nicht, oder? –
Es tut es nicht. Das ist ziemlich einfach. – Nowaker