繁体   English   中英

Javascript,调用Java Applet方法抛出TypeError

[英]Javascript, Calling Java Applet method throws TypeError

我有一个简单的Applet类:

package com.myapp;

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

我已将其他我的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获取元素

根据文档,您需要包含以下脚本来运行applet。

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

这项任务背后的主要问题是Firefox,Chorme和Safari的最新版本不支持applet,他们不会启动它们

唯一仍然可以启动applet的浏览器是Internet Explorer ,它还需要显式权限,这些权限被认为是非常危险的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM