これは、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
を使用していますが、過去に何をしていたかは誰にもわかりません。