繁体   English   中英

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

[英]How can I open a webpage within a Java app and run my own javascript code

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

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

这在浏览器中有效...如何在Java应用程序中以编程方式实现它?

谢谢!

有一个用Java编写的Rhino JS引擎 ,您可以在诸如Tomcat之类的应用服务器上运行该JS引擎 ,然后将JS馈入该引擎

还有一个基于Rhino的Envjs模拟浏览器环境 ,但足以运行jQuery和/或Prototype

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

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

我不确定您要寻找什么,但我假设您想编写自动POST请求。 这可以通过Http Client库完成 只有您必须设置适当的请求(POST或GET)参数。

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

您的问题有点模棱两可,因为我们不知道Java程序的位置。
如果这是页面内的Java小程序,则应查看Java <-> JavaScript交互,它很好用。
如果您需要一个单独的Java程序来控制浏览器,例如在地址栏中发送小书签(如您的标签所暗示的那样),则会有些麻烦(取决于目标浏览器),也许看一下Robot类。

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

  1. 彗星(寿命长的https会话)
  2. 轮询
  3. 机会主义/背piggy式(例如,下一次来自客户端的请求时,追加您的js调用)

无论使用哪种方法(通常是配置时的决定,而不是编码问题),您都可以完全访问要进行的所有js调用。

查阅DWR的参考页以获得很好的解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM