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



我正在使用java applet来调用Web服务。这个java小程序嵌入在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没有重新加载。(但如果我在加载整个页面之前手动设置一个参数,它就可以工作,所以问题是为了接受新参数而重新加载applet)。我试图调用stop()方法,然后是destroy()方法,然后是另一个init(),然后是我想要的请求,但它不起作用。

我设法用不同的applet来做我的请求(用几个innerHTML一步一步地创建每个applet),但它并不完全像我想要的那样工作,我真的更喜欢只使用一个。

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

试试这样调用你的函数:

document.TEST3.mymethod2();

看看是否可以。

编辑

根据你的评论,我明白你试图传递额外的启动参数到你的页面上的Applet。这当然是不可能的(关键字startup:))。第一个方法是:

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上的方法签名应该匹配!

最新更新