Javascript,调用 Java Applet 方法抛出 TypeError

标签 javascript java applet

我有一个简单的 Applet 类:

package com.myapp;

class MyApplet extends Applet {
    public String myMethod() {
       return "Hello";
    }
}

我已将我的 java 类与其他 java 类一起编译成 jarfile。然后我运行这个 jar 文件主类以确保正确创建 jar。它有效。

然后我尝试将此 Applet 嵌入到我的页面中:

<script type="application/javascript">
    $(document).ready(function () {
        console.log(document.MyApplet.myMethod())
    });
</script>

<applet archive="myjar.jar" code="com.myapp.MyApplet.class" id="MyApplet" name="MyApplet" width=100 height=100></applet>

这引发了我这个错误:

Uncaught TypeError: Cannot read property 'myMethod' of undefined

这意味着document.MyApplet返回undefined

当我尝试这样调用它时:

document.getElementById('MyApplet').myMethod();

它给了我这个:

Uncaught TypeError: document.getElementById(...).myMethod is not a function

我错过了什么吗?

我已经对此进行了测试:

  1. Chrome 57.0.2987.133(64 位)
  2. Firefox 52.0.2(32 位)

Applet 使用 JDK 8 编译。

最佳答案

尝试

    console.log(document.getElementById('MyApplet').myMethod())

可以通过getElementById抓取元素

根据docs您需要包含以下脚本来运行小程序。

<script src=
  "https://www.java.com/js/deployJava.js"></script>
<script>
    <!-- applet id can be used to get a reference to
    the applet object -->
    var attributes = { id:'MyApplet',
        code:'jcom.myapp.MyApplet.class',  width:1, height:1} ;
    var parameters = { jnlp_href: 'MyApplet.jnlp'} ;
    deployJava.runApplet(attributes, parameters, '1.6');
</script>

关于Javascript,调用 Java Applet 方法抛出 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43425809/

相关文章:

java - jsp ${pageContext.request.contextPath} 发送请求

java - 用于查看 Word 文档的小程序

Javascript getAttribute 对图像返回 null

javascript - 如何使用 sinon stub /模拟从 "superclass"复制的依赖项方法

javascript - 如何在 AngularJS 应用程序中修改 DOM

javascript - 如何通过 javascript 单击 html 链接访问 SDcard ..?

java - 使用 Apache Tika 提取文本,然后在删除停用词后获取频繁出现的单词

java - 为什么 java 需要将有界类型参数实例化为其上限类?

java - java中大文件读取不一致

java - 从小程序重新启动 java.exe