Javascript无法访问Java applet函数

时间:2013-09-13 17:26:12

标签: java javascript html applet

我正在尝试创建一个非常简单的Java Applet,以尝试在Web浏览器中使用Java函数。问题是,我的applet无法获得任何功能。我在这个网站上尝试过几十个教程和答案,但没有任何结果产生任何不同的结果,浏览器总是说AppName.FunctionName不是函数。

这是我的HTML ...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4  /strict.dtd">
<html>
<head>
 <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type">
<title>Test Applet</title>
</head>
<body onload="test()">
<applet code="TestApplet.class" name="AppTest"
height="350" width="100"></applet>
<script language="Javascript">
function test(){
alert("Attempt 1");
var elem= document.getElementById('AppTest');
alert(elem);
elem.test();
alert("Attempt 2");
document.AppTest.test();
}
</script><br>
</body>
</html>

这是我的Java代码......

import javax.swing.JApplet;

public class TestApplet extends JApplet {

    public String sayHi(){
        return "hello";
    }
    public void test(){
        System.out.println("You did it bro");
    }
}

为什么这似乎什么都不做?注意:我正在使用FireFox进行测试

修改

因此,我试图接近一个有效的解决方案,我修改了我的html如下

<html>
<head>
  <title>Test Applet</title>
</head>
<body>
<applet code="AppPack.TestApplet.class"
 codebase="TestApplet.jar" name="AppTest"
 scriptable="true" height="350" width="100"></applet>
<script language="Javascript">function test(){
document.AppTest.test();
}
</script><br>
<input name="tryit" value="TryIt" onclick="test()"
 type="button">
</body>
</html>

我尝试使用代码库声明,看看它是如何将applet绘制到画布上的,但是这个框只包含一个错误,说明找不到类的异常,如果没有它我会得到一个只有按钮的空白页面。所有文件都在同一个目录中,如果我在eclipse中测试applet,它会生成html以在查看器中运行applet,但如果只是使用broswer打开,这些html文件也不会加载。请问,任何人都可以了解我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

过早调用测试函数。

在调用页面onload函数时,不一定会加载和启动applet。这实际上只意味着浏览器已经读取了与页面相关的所有HTML,不一定是图像,(外部定义的)样式或脚本,或者可能作为页面加载的结果创建的内容(例如applet)。

test()方法的调用放入您单击的按钮,在页面加载后等待“片刻”,然后再次尝试。


在部署时也要确保声明scriptable='true'。像这样:

<applet 
    code="TestApplet" 
    name="AppTest"
    scriptable="true"
    height="350" 
    width="100">
</applet>

大多数浏览器都允许在没有它的情况下调用applet,但最好将其添加到其他浏览器中。