1

使用 isActive() 方法进行小程序初始化时。它只返回未定义的。这个问题只出现在“Java 8 Update 91”。谁能告诉我加载或不加载小程序的解决方案?

我使用了以下代码:

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; 
}
4

1 回答 1

0

这是 Firefox(很可能)或 Java 8_91 中的错误。似乎对小程序方法的任何过早调用都会永久地连接到小程序。

然而,小程序支持有一个检查小程序状态的新功能,通过设置参数启用<param name="java_status_events" value="true"/>。这反过来允许status在小程序加载时进行检查。如果启用此功能,并使用它来防止在小程序加载之前调用任何小程序方法,那么一切正常。

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

顺便说一句,Firefox 使用app.isActive(),而不是app.isActive,尽管谁知道它过去做了什么。

于 2016-05-04T01:11:47.827 回答