从Java脚本调用小程序函数时出现问题
每次我从Java脚本调用小程序的函数时,它都会抛出一个未定义的异常。 我的谷歌搜索根本帮不了我 以下是我现在正在托管的网站的链接: 以下是嵌入小程序的html:从Java脚本调用小程序函数时出现问题,java,javascript,html,applet,Java,Javascript,Html,Applet,每次我从Java脚本调用小程序的函数时,它都会抛出一个未定义的异常。 我的谷歌搜索根本帮不了我 以下是我现在正在托管的网站的链接: 以下是嵌入小程序的html: <object type="application/x-java-applet" id="ClientApp" name="ClientApp" archive="Cal.jar" width="100" height="100">
<object type="application/x-java-applet"
id="ClientApp" name="ClientApp"
archive="Cal.jar"
width="100" height="100">
<param name="code" value="Calendar_Algorithm" />
<param name="mayscript" value="true" />
</object>
这里还有我完整代码的链接
我觉得这个错误非常明显,但我就是看不出来
任何帮助都会很好
附言。
小程序类文件现在位于签名jar文件中
这也将被放置在tomcat服务器的webapps文件夹中,但我目前正在以本地文件的形式访问它。来自,关于对象属性:
“此属性命名包含小程序状态序列化表示形式的资源。”
我猜这不是你想要的
此外,如果您在firefox mac上,您需要(JS-2-Java交互)LiveConnect的mayscript参数才能工作
部署实用小程序的一种方法:
<object type="application/x-java-applet" width="100" height="100">
<param name="codebase" value="/applet_dir" />
<param name="code" value="Calendar_Algorithm" />
<param name="mayscript" value="true" />
</applet>
如果您没有启用Java控制台,您肯定应该这样做。它是在Java控制面板高级设置下启用的
顺便说一句,在ChromeLinux中它可以工作!在Firefox Linux中没有。Firefox不喜欢同时指定object和code参数,并且类名不同
LiveConnect有缺陷,尤其是在mac上。关于概述,请看一看:基本上您需要知道LiveConnect的哪些部分可以使用,哪些部分不可以使用。err.description返回“undefined”,getGreating(),返回字符串“Hello”。我问了8个问题,其中只有1个问题的答案是该问题的解决方案,尽管其他几个问题确实找到了解决方案,所以我回去接受了。我猜document.ClientApp返回的是未定义的?您是否尝试过通过ID访问?我习惯于通过document.getElementById('appId').getGreeting()访问小程序。该异常是发生在小程序中还是发生在JavaScript部分?如果是第一个,在那里添加一个
ex.printStackTrace()
,这会提供更多信息。您的applet+HTML页面是否有一些Web空间,以便我们可以查看它?@jbrookover,我尝试添加id,但没有成功:(@Paulo Ebermann,它出现在JavaScript中。getGreeting()方法在int init中执行,我知道它是有效的,因为gui显示了正确的消息,并且我已经上传到我的家庭服务器,查看链接的问题。我已经更新了问题,并采纳了您的建议。当我调用getGreeting()时,我仍然收到未定义的错误函数我第一次没有充分阅读您的JavaScript代码。您正在使用document.write,它会覆盖文档的内容,即ID,对象将被删除。请改用console.log。您是我的英雄!!!!!这已经困扰了我三天了!我对java脚本不熟悉,没有意识到一旦您开始编写文档,你丢失了当前的文档!太棒了!终于找到了一种在IE6(是的,我们需要它)和Chrome和Firefox中都可以使用的方法。太棒了!在某些情况下可能还需要“脚本化”参数。
public void init() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
JLabel lbl = new JLabel(getGreeting());
add(lbl);
}
});
} catch (Exception e) {
System.err.println("createGUI didn't complete successfully");
}
}
<object type="application/x-java-applet" width="100" height="100">
<param name="codebase" value="/applet_dir" />
<param name="code" value="Calendar_Algorithm" />
<param name="mayscript" value="true" />
</applet>