0

我正在使用特定的 JavaScript 连接到网络服务器。(使用 HttpURLConnection atm)我需要的是一个可以操作 JavaScript 函数的连接。之后我想再次运行整个 JavaScript。

我希望以下函数始终返回“new FlashSocketBackend()”

function createBackend() {
    if (flashSocketsWork) {
        return new FlashSocketBackend()
    } else {
        return new COMETBackend()
    }
}

我必须为此使用 HtmlUnit 吗?连接、操作和重新运行脚本的最简单方法是什么?

谢谢。

4

2 回答 2

0

你最好的选择可能是使用Rhino——一个完全用 Java 编写的开源 JavaScript 实现。加载您的页面window.location并希望运行您的 JavaScript 函数。我在将浏览器带到服务器之前读过一段时间,似乎可行。

于 2012-04-05T10:49:04.850 回答
0

使用 HtmlUnit 你确实可以做到。

即使您不能操作现有的 JS 函数,但是您可以在现有页面上执行您希望的 JavaScript 代码。

例子:

WebClient htmlunit = new WebClient();
HtmlPage page = htmlunit.getPage("http://www.google.com");
page = page.executeJavaScript("<JS code here>").getNewPage(); 

//manipulate the JS code and re-excute
page =  page.executeJavaScript("<manipulated JS code here>").getNewPage();

//manipulate the JS code and re-excute
page =  page.executeJavaScript("<manipulated JS code here>").getNewPage();

更多: http ://www.aviyehuda.com/2011/05/htmlunit-a-quick-introduction/

于 2012-04-05T11:07:21.107 回答