我无法让 Java Applet 与托管小程序的页面上的 Javascript 代码进行通信。它有时可以工作,但有时它会抛出一个晦涩的异常,除了一些从未解决的 Java 错误报告(感谢 Sun)之外,谷歌搜索并没有找到任何有用的信息。
这是我正在使用的代码:
JSObject win = JSObject.getWindow(this);
Object[] args = new Object[1];
args[0] = "test argument";
String result = (String) win.call("testJSfunc", args); // XXX
这是我在标记为 // XXX 的行上遇到的异常。请注意,它是间歇性的。通常它可以工作,但有时它不会,使用相同的确切代码。重复重新加载页面会很快产生错误。
netscape.javascript.JSException: No registered plugin for applet ID 1
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 TestApplet.testCallJS(TestApplet.java:159)
at TestApplet.init(TestApplet.java:139)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
我应该使用另一种在 Java 和 Javascript 之间进行通信的更稳定的方式吗?
- - 更多信息 - -
我正在使用 Sun 提供的 deployJava.js 脚本来动态嵌入小程序。我确保启用了 MAYSCRIPT。我知道这不是 MAYSCRIPT 的问题,因为通信有时会起作用。