如何将新参数添加到java applet以从javascript调用另一个方法?

时间:2011-07-13 15:11:26

标签: java javascript parameters applet

我正在使用java applet来调用Web服务。这个java applet嵌入在这样的html网页中:

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

因此,当打开网页时,applet就会启动。我有一个javascript文件调用init()方法来调用第一个Web服务。然后我检索数据,我需要调用第二个Web服务。这就是为什么我需要在这里为我的java applet添加参数。如果我在javascript中使用:

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

然后

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

它不起作用。小程序未重新加载。 (但是如果我在加载整个页面之前手动设置一个参数,它就有效,所以问题是重新加载applet以获取新参数)。 我试着调用stop()方法,然后调用destroy(),然后调用另一个init(),然后调用我想要的但是它不起作用。

我设法使用不同的applet(使用几个innerHTML逐步创建每个applet)来执行我的请求,但它并不能完全按照我的意愿工作,我真的更愿意只使用一个。

如果您有任何想法,非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

尝试调用这样的函数:

document.TEST3.mymethod2();

看看是否有效。

修改

根据您的评论,我了解到您尝试将其他启动参数传递到您网页上的Applet。这当然不可能(关键字 startup :)。用你的第一种方法,你有这个:

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

但你的对象标签(正确)没有任何 innerHTML 。并且params在对象标签主体中没有指定,所以无论这样做什么都没有用。你的第二种方法有这个:

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

根据您的评论有效,但当然没有传递数据,因此您的Applet参数不会更改。你想做的是:

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

当然,Applet上的方法签名应该匹配!