我有一个简单的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
返回未定义
当我尝试这样称呼它时:
document.getElementById('MyApplet').myMethod();
它抛出了我:
Uncaught TypeError: document.getElementById(...).myMethod is not a function
我错过了什么吗?
我已经测试了这个:
使用JDK 8
编译Applet。
答案 0 :(得分:0)
尝试
console.log(document.getElementById('MyApplet').myMethod())
您可以按getElementById
根据docs,您需要包含以下脚本来运行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>
答案 1 :(得分:0)
此任务背后的主要问题是最新版本的Firefox,Chorme和Safari不支持applet而且他们不会启动它们
唯一仍然可以启动applet的浏览器是 Internet Explorer ,它还需要显式权限,这些权限被认为非常危险。