Передача обратного вызова javascript в апплет Java, развернутый с помощью deployJava - PullRequest
3 голосов
/ 24 ноября 2010

У меня есть апплет, который довольно длинный для запуска, но который необходим для работы моего приложения.

Я использовал для регистрации обратного вызова javascript: jsAppletIsStarted.Этот обратный вызов был вызван в конце выполнения метода запуска апплета.

Код выглядел более или менее так:

<script>
var jsAppletIsStarted = function(){/*do some useful stuff*/};
</script>
<applet id=".." etc>
<param name="appletStartedCallBack" value="jsAppletIsStarted "/>
</applet>

И он работал как чудо.

Мне пришлось переключиться на другой способ запуска апплета: используя метод deployJava.runApplet ().

Код теперь выглядит следующим образом:

    <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>

И обратный вызов - нетболее узнаваемым.В моей консоли Java у меня есть следующая ошибка:

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)

Есть ли хак для передачи обратных вызовов javascript в качестве параметров апплету для использования с deployJava.js?

1 Ответ

0 голосов
/ 22 августа 2011

Пожалуйста, попробуйте вызвать функцию вручную.

getAppletContext().showDocument(new URL("javascript:jsAppletIsStarted()"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...