簡體   English   中英

如何向 java 小程序添加新參數以從 javascript 調用另一個方法?

[英]How to add new parameters to a java applet to call another method from javascript?

我正在使用 java 小程序調用 Web 服務。 此 java 小程序嵌入在 html web 頁面中,如下所示:

<object classid="java:TEST3.class"
                codebase="lib/"
                type="application/x-java-applet"
                width="5000" height="50"
                archive="sTest11.jar" name="TEST3" id="TEST3">
    <param name="TEST3" value="TEST3" />
    alt : <a href="TEST3.class">TEST3.class</a>
    <!-- Safari needs this -->
    <param name="JAVA_CODEBASE" value="lib" />
    <param name="BGCOLOR" value="000000" />
    <param name="TEXTCOLOR" value="FF0000" />
    <param name="TEXT" value="Test" />
    <param name="SPEED" value="250" />
    <param name="RANDOMCOLOR" value="1" />
    <param name="mayscript" value="yes"/>
    <param name="scriptable" value="true" />
</object>

所以當web頁面打開時,小程序啟動。 我有一個 javascript 文件,它調用 init() 方法來調用第一個 web 服務。 然后我檢索數據,我需要調用第二個 web 服務。 這就是為什么我需要在這里為我的 java 小程序添加參數。 如果我在 javascript 中使用:

document.getElementById('TEST3').innerHTML +='<param name="PARAM1" value="'+var1+'"/>';

接着

javascript:document.getElementById('TEST3').mymethod2();

這沒用。 小程序不會重新加載。 (但如果我在加載整個頁面之前手動輸入參數,它會起作用,所以問題是重新加載小程序以獲取新參數)。 我嘗試調用 stop() 方法,然后調用 destroy() 方法,然后調用另一個 init(),然后調用我想要的請求,但它不起作用。

我設法使用不同的小程序(使用幾個 innerHTML 逐步創建每個小程序)來完成我的請求,但它並不能完全按照我的意願工作,我真的更喜歡只使用一個。

如果您有任何想法,非常感謝您的幫助。

嘗試像這樣調用您的 function :

document.TEST3.mymethod2();

看看這是否有效。

編輯

根據您的評論,我了解到您正在嘗試將其他啟動參數傳遞給您頁面上的小程序。 這當然是不可能的(關鍵字啟動:)。 用你的第一種方法,你有這個:

document.getElementById('TEST3').innerHTML +='<param name="PARAM1" value="'+var1+'"/>';

但是您的 object 標簽(正確)沒有任何innerHTML 無論如何,在 object 標簽正文中都沒有指定參數,所以無論如何這都沒有任何用處。 你的第二種方法是這樣的:

javascript:document.getElementById('TEST3').mymethod2();

根據您的評論,哪個有效,但當然沒有數據傳入,因此您的 Applet 參數不會更改。 你想要做的是:

javascript:document.getElementById('TEST3').mymethod2(someparameter);

當然,您在 Applet 上的方法簽名應該匹配!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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