java - Java Applet <--> Javascript 通信问题

标签 java javascript applet liveconnect

我无法让 Java Applet 与托管该 applet 的页面上的 Javascript 代码进行通信。它有时会工作,但有时会抛出一个模糊的异常,谷歌搜索没有找到任何有用的信息,除了一些从 Unresolved 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 的问题,因为有时通信是有效的。

最佳答案

确保你的 applet 标签中有 MAYSCRIPT。

<applet id="..." code="..." name=".." codebase="..." archive="..."  width="100%" height="100%" MAYSCRIPT>

关于java - Java Applet <--> Javascript 通信问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2495129/

相关文章:

java - 为什么Java不支持socks4?

java - 在 Mac Android Studio 上生成 JavaDoc 时出错

java - appletviewr - getParameter 返回 null

javascript - 防止输入因虚拟键盘点击而失去焦点

Java applet 向 php 页面发送信息

java - 在 Web 上运行小程序时出现类未找到异常和 IO 异常

java - 将RelativeLayout分为3个相同的部分

java - 在 Windows 10 WSL 中更新 Java 版本

javascript - 如何使用链接展开/折叠网页中的信息列表

javascript - 多次访问 $(this) 时是否应该创建一个局部变量 $this ?