Java 8 Update 91问题

时间:2016-05-03 06:42:02

标签: javascript java applet liveconnect

使用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; 
}

1 个答案:

答案 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,但是谁知道它过去做了什么。