将 javascript 回调传递给使用deployJava部署的java小程序

发布于 2024-10-04 03:33:29 字数 1716 浏览 0 评论 0原文

我有一个小程序,启动时间很长,但我的应用程序需要它才能工作。

我曾经注册过一个 javascript 回调:jsAppletIsStarted。 在小程序的 start 方法执行结束时调用此回调。

代码看起来或多或少像这样:

<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 回调作为参数传递给小程序以与部署Java.js 一起使用?

I have an applet which is pretty long to start, but which is needed for my application to work.

I used to register a javascript callback : jsAppletIsStarted.
This callback was called at the end of execution of the applet's start method.

The code looked more or less like this:

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

And it worked like a charm.

I had to switch to another way to start the applet : using the deployJava.runApplet() method.

The code now looks like this:

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

And the callback is no more recognized. In my java console, I have the following error.

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)

Is there a hack to pass the javascript callbacks as parameters to the applet for using with deployJava.js ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿看小鸭子会跑 2024-10-11 03:33:29

请尝试手动调用该函数。

getAppletContext().showDocument(new URL("javascript:jsAppletIsStarted()"));

Please try calling the function manually.

getAppletContext().showDocument(new URL("javascript:jsAppletIsStarted()"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文