自Java 7u51可用以来,LiveConnect调用在7u45被阻止

Chr*_*s R 10 javascript java liveconnect

我有一个带有Java applet的页面,该applet具有以下JavaScript代码,当窗口关闭时,它会执行LiveConnect调用以执行一些清理任务:

window.onbeforeunload = function(e) {
    var result = document.OutApplet.closeCheck();
Run Code Online (Sandbox Code Playgroud)

直到昨天,它按预期工作,并在applet中执行清理任务.

现在Java 7u51可用了,我今天访问了这个applet,并在提示更新到最新版本的Java时选择了"Later".现在当我关闭窗口时,我收到一个JavaScript错误:

对象不支持属性或方法'closeCheck'

只是为了澄清这是安装了Java 7u45.

这是预期的行为,还是我可以做些什么让它仍然在7u45上工作?我在发行说明中找不到任何提及,在7u51之前,我们的实时连接呼叫仍然可以在没有最新安全基线的情况下工作.

更新

以上是我的Java安全设置为高.

我已将其更改为"中"并重复上述操作.我现在收到一条消息,询问我是否要允许或阻止LiveConnect呼叫.

允许LiveConnect提示

似乎现在有一个未记录的(据我所知)要求LiveConnect仅在您处于安全基线(7u51)时才能工作.

请注意,一旦我更新到7u51,对applet的LiveConnect调用无需更改applet

小智 6

这是一个已知的Java bug,影响从7u25到7u45的所有版本:

http://bugs.sun.com/view_bug.do?bug_id=8027405

唯一的解决方案是升级到7u45 7u51或将java安全滑块设置为"中".

[编辑]根据错误报告纠正修复版本