[英]Check for presence of Java function in applet from javascript in IE9
您好stackoverflow社區,
我有一些代碼幾乎可以在除....(等待它).... IE9(以及其他版本的IE?)之外的所有瀏覽器上使用。
因此,我在頁面中添加了一個applet,一切正常,但是我想檢查applet是否已加載,為此,我一直在輪詢以查看applet中的功能是否存在。
例如,假設我的Java小程序中有此方法:
public int dummy( int a ) {
return a + 1;
}
因此,在我的javascript中,我輪詢以查看函數是否像這樣存在(使用jquery,其中#applet是applet標簽的ID):
var japp = $("#applet").get(0);
if( japp && japp.dummy ) {
alert( japp.dummy(1) );
}
您會注意到,這至少在Chrome和Firefox中有效,但在IE9中無效。
在IE9中,無論可訪問的方法是什么, japp.dummy
始終返回undefined
有誰知道一個好的IE9解決方法?
謝謝,-Oz
嘗試這種方式:
<object id="idOfMyApplet" ... >
<param> ... </param>
</object>
function testApplet() {
var myApplet = document.applets.idOfMyApplet;
if (!myApplet) {
return false;
}
try {
myApplet.publicTestMethod();
} catch(ex) {
return false;
}
return true;
}
var retryCounter = 20;
var appletLoaded = false;
function waitForApplet() {
if (!testApplet()) {
if (retryCounter > 0) {
retryCounter--;
setTimeout("waitForApplet()", 500);
}
return false;
}
appletLoaded = true;
return true;
}
我想檢查小程序是否已加載,為此,我一直在輪詢以查看小程序中的功能是否存在。
不要那樣做 而是讓applet在init()
的末尾調用JS函數。 init()
的結尾是小程序准備好時。
IE9在這里失敗,而其他瀏覽器則沒有。
用“任何瀏覽器”代替IE9,您會遇到小程序/ JRE / JS /瀏覽器交互的小問題。 不幸的是,這就是小程序的本質。 :(
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.