1

isActive() メソッドを使用する際のアプレットの初期化中。undefined のみを返します。この問題は「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 に答える