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>
应该可以。打开页面时自动触发的小程序可以保留为对象。
我维护了一些用于网站的小程序,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>
应该可以。打开页面时自动触发的小程序可以保留为对象。