【问题标题】:Java to javascript communication (LiveConnect) broken recently?Java 到 javascript 的通信 (LiveConnect) 最近坏了?
【发布时间】:2013-11-18 16:37:37
【问题描述】:

看看这个链接:

http://www.chemaxon.com/marvin/examples/applets/sketch/chemicalterms2.html

这个小程序是可信的、签名的等,但我找不到它工作的配置(操作系统/浏览器/Java)...

我有:

  • Ubuntu 12.04 / FF 25 / Java 1.7.0_45-b18
  • Ubuntu 12.04 / Chromoum 30.0.1599.114 / Java 1.7.0_45-b18
  • OSX 10.9 / FF 25 / 1.7.0_21-b12
  • OSX 10.9 / Safari 7.0 (9537.71) / 1.7.0_21-b12

在所有这些环境中,我都可以看到相同的 js 错误:

TypeError: document.MSketch.evaluateChemicalTerms is not a function

LiveConnect 是否损坏?我该如何解决? 任何帮助表示赞赏!

【问题讨论】:

    标签: java javascript applet liveconnect


    【解决方案1】:

    最新的 jre 版本 (7u45-b18) 并未完全破坏 LiveConnect 调用,并允许出现烦人的安全弹出窗口。

    每个 Applet 类加载器实例都会显示一次 JavaScript 到 Java (LiveConnect) 安全对话框提示。

    http://www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html#newft

    最终,java 家伙可能不支持 Live Connect 调用,所以现在是摆脱它的好时机。

    根据您的应用程序逻辑,您必须将所有实时连接调用替换为备用逻辑。

    【讨论】:

    • 您对 liveconnect 替代方案有什么建议吗?
    • 在包含小程序的每个页面上创建方法队列(将实时连接调用放入此队列而不是在小程序上调用),并在小程序中有一个线程将轮询方法信息并执行方法使用反射。
    猜你喜欢
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2011-11-08
    • 2013-10-24
    • 2010-09-23
    相关资源
    最近更新 更多