Java 8 обновление 91 выпуск
При инициализации апплета при использовании метода 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;
}
1 ответ
Это ошибка либо в 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
Впрочем, кто знает, что он делал в прошлом.