2016-05-03 3 views
1

Инициализация апплета при использовании метода isActive(). Он возвращает только неопределенный. Эта проблема возникает только «Java 8 Update 91». Может ли кто-нибудь связаться со мной, чтобы приложение было загружено или нет?Java 8 Update 91 Issue

Я использовал следующий код:

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

Это НЕ ЯВА. – Aurasphere

+0

Это, кажется, ошибка в Firefox 45 под Windows; функции апплета больше недоступны из Javascript. –

+0

@Aurasphere: Нет, это код Javascript, пытающийся взаимодействовать с Java. –

ответ

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

И только BTV, Firefox использует app.isActive(), не app.isActive, хотя кто знает, что это было в прошлом.

+1

Спасибо, много #Lawrence Dol .... Выше вашего решения работает нормально. –

+0

Добро пожаловать. Я только что столкнулся с этим, когда нашел свой вопрос. –