簡體   English   中英

從IE9中的JavaScript檢查applet中Java函數的存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM