新的Chrome更新阻止Java;在调用我的applet代码之前,我怎么能等到授予权限?

时间:2011-04-28 01:17:09

标签: java javascript plugins google-chrome applet

最近,Chrome获得了a new update,它会自动阻止所有插件。它会显示一个栏,要求用户启用它。 This is what the bar looks like.

我的网站有一个按钮,当点击它时,加载一个Java小程序并调用其中的方法。问题是它在加载applet之后立即尝试调用该方法,然后才能授予权限。当然,这给了我一个错误,我的Javascript说没有这样的方法。

如何告诉我的按钮在调用其方法之前等待applet被授予权限?我无法预加载applet,因为它是自签名的,我不希望在需要之前弹出安全对话框。通常,该对话框会暂停Javascript并在授予或拒绝访问时恢复它,但这个新的Chrome对话框与该站点并行运行。

1 个答案:

答案 0 :(得分:1)

成功加载后,您可以让Applet调用Javascript方法。然后,在尝试访问Applet之前,您的Javascript将等待调用此方法。

对于Java-to-Javascript通信,您有几个选择。您可以在Google上搜索JSObject课程,但我的理解是这需要特定于浏览器的二进制文件,因此可能不是一个可行的解决方案。更简单的方法是使用AppletContext的{​​{1}}方法执行Javascript,如http://www.brilliantsheep.com/java-to-javascript-communication-made-simple/所述。

例如,在Applet的init()方法中,您将获得如下代码:

showDocument

然后在javascript中定义一个名为onAppletIsReady的方法,该方法在加载Applet后立即执行您之前运行的任何逻辑。