Java 小程序在 Java 8u60 下的 Internet Explorer 中不再起作用

Java applet no longer functional in Internet Explorer under Java 8u60

我维护了一些用于网站的小程序,Java 8u60 使它们无法运行。我不确定到底发生了什么。

以下是我为 IE 声明标签的方式:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
   <param name="code" value="com.mysite.myapplet" />
   <!-- other params -->
</object>

一个细节:applet 不能在页面加载时触发,而是在按钮点击时触发,所以上面的标签是由 Java 脚本生成的,它将 HTML 注入到 div的innerHTML属性。有解决方法吗?

这是我找到的解决方法:使用 APPLET 标签。

"But all the doc says to use OBJECT for IE support?"

我知道。但即使 Java 自己的 deployJava.js 也会输出一个 APPLET 标签。

显然这是 8u60 中专门引入的一个错误,它使注入的 HTML OBJECT 标签不起作用。

所以,注入这个:

<applet code="com.mysite.myapplet">
    <param name="classid" value="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" />
    <!-- other params -->
</applet>

应该可以。打开页面时自动触发的小程序可以保留为对象。