0

特定の JavaScript を使用して Web サーバーに接続しています。(HttpURLConnection atm を使用) JavaScript 関数を操作できる接続が必要です。その後、JavaScript 全体をもう一度実行したいと思います。

次の関数が常に「new FlashSocketBackend()」を返すようにしたい

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

これには HtmlUnit を使用する必要がありますか? スクリプトを接続、操作、再実行する最も簡単な方法は何ですか?

ありがとう。

4

2 に答える 2

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 に答える
0

最良の方法は、Rhinoを使用することです。Rhinoは、完全に Java で記述された JavaScript のオープンソース実装です。でページをロードし、window.locationできれば JavaScript 関数を実行します。ブラウザをサーバーに持ち込む前に読んだことがありますが、可能だと思われました。

于 2012-04-05T10:49:04.850 に答える