我有一个带有Java applet的页面,该applet具有以下JavaScript代码,当窗口关闭时,它会执行LiveConnect调用以执行一些清理任务:
window.onbeforeunload = function(e) {
var result = document.OutApplet.closeCheck();
直到昨天,它按预期工作,并在小程序内执行清理任务。
现在Java 7u51可用了,我今天访问了这个applet,并在提示更新到最新版本的Java时选择了“Later”。现在当我关闭窗口时,我收到一个JavaScript错误:
Object不支持属性或方法'closeCheck'
只是为了澄清这是安装了Java 7u45的。
这是预期的行为还是我可以做些什么让它仍然可以在7u45上运行?我在发行说明中找不到任何提及,在7u51之前,我们的实时连接呼叫仍然可以在最新的安全基线上运行。
更新
以上是我的Java安全设置为High。
我已将其更改为“中”并重复上述操作。我现在收到一条消息,询问我是否要允许或阻止LiveConnect呼叫。
现在似乎有一个未记录的(据我所知)要求LiveConnect仅在您处于安全基线(7u51)时才能工作。
请注意,在我更新为7u51后,对applet的LiveConnect调用无需对applet进行任何更改
答案 0 :(得分:6)
这是一个已知的Java错误,影响从7u25到7u45的所有版本:
http://bugs.sun.com/view_bug.do?bug_id=8027405
只有解决方案是升级到 7u45 7u51或将java安全滑块设置为“中”。
[编辑]根据错误报告
更正修正版本答案 1 :(得分:1)
至于最近(昨天)开始失败的原因是因为基线已更新https://javadl-esd-secure.oracle.com/update/baseline.version,现在如果您编辑C:\ Users \ username \ AppData \ LocalLow \ Sun \ Java \ Deployment \ security \ baseline .versions并将1.7.0_51更改为1.7.0_45并保存文件,它应该重新开始工作(但最终可能会在一段任意时间之后更新)。
答案 2 :(得分:1)
1)关闭所有浏览器和程序
2)在Windows资源管理器中,转到%localappdata%low \ Sun \ Java \ Deployment
3)打开名为“deployment.properties”的文件
4)在此文件末尾添加以下行
deployment.expiration.check.enabled=false
5)保存并关闭文件
答案 3 :(得分:0)
这里也有同样的问题。
甲骨文曾在9月份警告过新的强制性(见下文)选项。 我们在去年年底实施并交付了它们,但今天它们似乎没有用......
https://blogs.oracle.com/java-platform-group/entry/new_security_requirements_for_rias
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html
答案 4 :(得分:0)
另一种解决方案,如果你无法升级你的JRE(卡在1.7.0_25和1.7.0_45之间):