java applet:如何从applet调用/访问网页的javascript变量?

时间:2012-07-03 12:02:35

标签: java applet

一个例子:

getAppletContext().showDocument(
  new URL("javascript:alert(document.getElementById('textbox').value);"
));

我想在我的applet程序中进一步使用这个值作为字符串变量,而不是警告这个文本框值。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

针对不同方法的多种想法。以下是一些:


将输入字段放在Applet中。除了向HTML页面添加<input> - 标记外,您还可以通过添加AWT组件在Applet中获取输入(或者,当使用JApplet时,您可以使用较新的Swing工具包)。虽然Swing应该是首选。

当然,如果您无法更改applet代码,则不能选择此选项。


使用<param> - 代码。您可以使用<param>中的<applet>标记为您的applet提供一些初始值(例如参数) -tag如tag-doc中的此示例所示:

<applet code="A21" width="256" height="256" archive="toir.jar">
  <param name="img" value="test.gif">
</applet>

但是,正如我所说,这些是初始值。如果在applet已经运行时更改它们,它们将不会在Applet本身中更改。

因此,如果<input> - 标记中的值是初始值,则可以使用此值(并使用JS操纵value - 属性)。如果您想在applet运行时更改值,这只有在您重新启动applet时才有效(这可能不是最佳选择)。


使用“Java-to-Javascript Communication”。有一个介绍JSObject类的文档。它可以找到here。还有“Common DOM API”,可用于访问HTML页面的DOM结构。这听起来像你正在寻找的东西,但似乎有点过时。

Als,这似乎没有标准(就像<applet> - 标签),因此,某些浏览器可能没有或没有完全实现对它的支持。你必须尝试一下。

答案 1 :(得分:0)

// provide a JS function to return the value of textbox
// call it to get the value..
String userInput = JOptionPane.showInputDialog(this, value, ..