我正在开发一个项目,我们在部分UI(特别是地图)中使用Java applet,但是在HTML/JavaScript中围绕applet构建其余UI,通过LiveConnect/NPAPI与applet通信.我知道,有点奇怪,但我们假设设置没有讨论.我开始计划使用jQuery作为我的JavaScript框架,但我遇到了两个问题.
发出第一个:
选择applet不提供对applet方法的访问.
Java的:
public class MyApplet extends JApplet {
// ...
public String foo() { return "foo!"; }
}
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
var applet = $("#applet-id");
alert(applet.foo());
Run Code Online (Sandbox Code Playgroud)
运行上面的JavaScript会导致
$("#applet-id").foo is not a function
这与Prototype相反,Prototype类似的代码确实有效:
var applet = $("applet-id");
alert(applet.foo());
Run Code Online (Sandbox Code Playgroud)
那么...... applet方法在哪里?
发出第二个:
Firefox 2中的jQuery和applet存在一个已知问题:http://www.pengoworks.com/workshop/jquery/bug_applet/jquery_applet_bug.htm
这是一个很长的镜头,但有人知道一个变通方法吗?我怀疑这个问题不可修复,这意味着要切换到Prototype.
谢谢您的帮助!
我在HTML页面中有一个Java Applet.我需要让applet调用某个Javascript函数来通知HTML页面某些事件.
我目前调用JavaScript函数的方式是:
getAppletContext().showDocument(new URL("javascript:window.notifyEvent("+msisdn+")"));
Run Code Online (Sandbox Code Playgroud)
我在HTML代码中定义了实际的函数,但是当applet实际调用它时,我得到了Uncaught ReferenceError: notifyEvent is not defined错误.
我在哪里需要为applet定义javascript函数才能调用它?
谢谢!