如何在Java应用程序中打开网页并运行我自己的javascript代码

时间:2009-10-24 06:59:46

标签: java javascript bookmarklet

我想打开一个网页并在java应用程序中运行javascript代码。 例如,我想打开 www.mytestpage.com 页面并运行以下javascript代码:

document.getElementById("txtEmail").value="test@hotmail.com";
submit();
void(0);

这适用于浏览器...如何在java应用程序中以编程方式执行此操作?

谢谢!

5 个答案:

答案 0 :(得分:0)

用Java编写的Rhino JS engine可以在Tomcat等应用服务器上运行,然后提供JS,但是你不清楚你想用它做什么?

还有Envjs simulated browser environment基于Rhino,但足以运行jQuery和/或Prototype

答案 1 :(得分:0)

您可以使用Rhino执行JavaScript,但不会有DOM可用 - 即document.getElementById()可以使用。

您可以使用HTML Unit(无头)或WebDriver/Selenium(推动浏览器)在具有DOM可用的环境中执行JavaScript。

答案 2 :(得分:0)

我不确定您在寻找什么,但我认为您想要编写自动POST请求。这可以使用Http Client library完成。只需要设置适当的请求(POST或GET)参数。

查看examples - 您可以使用此库进行基本身份验证或发布文件。

答案 3 :(得分:0)

你的问题有点含糊不清,因为我们不知道Java程序的位置 如果这是您页面中的Java小程序,您应该查看Java< - > JavaScript交互,它运行良好。
如果你需要一个单独的Java程序来控制浏览器,比如在地址栏中发送书签(就像你的一个标签所示),那就更难了(取决于目标浏览器),也许看一下Robot类。

答案 4 :(得分:0)

DWR(和其他框架)现在支持“反向ajax”。一般的想法是,您使用三种方法之一与客户端进行通信:

  1. Comet(长寿https会话)
  2. 轮询
  3. 机会主义/背驮式(即下次请求来自客户端,附加你的js电话)
  4. 无论方法(通常是配置时决定而非编码问题),您都可以完全访问您想要进行的任何/所有js调用。

    查看the reference page from DWR以获得相当不错的解释。