使用isActive()方法时applet初始化。它只返回undefined。这个问题只出现在“Java 8 Update 91”中。任何人都可以打电话给我加载的精美applet的解决方案吗?
我使用了以下代码:
function isAppletActive(app) {
var active = false;
try { active = app.isActive(); // IE check }
catch(ex) {
try { active = app.isActive; // Firefox check }
catch(ex1){ } } //alert(active); return active;
}
答案 0 :(得分:0)
这是Firefox(最有可能)或Java 8_91中的错误。似乎任何对applet方法的过早调用都会永久地隐藏到applet的链接。
但是,applet支持有一个用于检查applet状态的新功能,通过设置参数<param name="java_status_events" value="true"/>
启用。这反过来允许在加载applet时检查status
。如果启用此功能,并使用它来阻止在applet加载之前调用任何applet方法,则一切正常。
function isAppletActive(app) {
// assuming `app` is the applet element...
if(app.status==1) { return false; } // still loading
if(app.status==2) { throw "Applet load failed"; }
try { active = app.isActive(); } // IE check
catch(ex) {
try { active = app.isActive; } // Firefox check
catch(ex1) { /* NEVER swallow exceptions! */ }
}
//alert(active);
return active;
}
而且只有BTW,Firefox使用app.isActive()
,而不是app.isActive
,但是谁知道它过去做了什么。