2017-12-23 10 views
0

HtmlPageクラス(HTMLUnit)の "executeJavaScript(String queryText)"メソッドを広く使用します。それはうまく動作しますが、queryTextの中のjQueryや$記号は認識しません。私は内部jQueryサポートを初期化するか、jQueryライブラリをインクルードする必要があると仮定します。誰もこれを行う方法を知っていますか? ありがとうHtmlUnitでjQueryを使用するにはexecuteJavaScript(query)引数?

答えて

0

この文を実行する前にjqueryスクリプトをダウンロードするスクリプトタグがあることを確認してください。それのための最良の場所は、ページの先頭要素内にあります。もう1つの可能性は、別のサードパーティのスクリプトで$を再定義することです(よくあることです)。$の代わりにjQueryをクエリテキスト内で試してみてください。

+0

こんにちは、すぐにお返事ありがとうございます。しかし、私は問題を見る。私が正しく理解していれば、

0
String jQueryInjector = 'eval(
    function loadJQuery(){ 
    var newJQueryLib = document.createElement("script");   
    newJQueryLib.type = "text/javascript"; 
    newJQueryLib.src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1 
                 /jquery.min.js"; 
    (document.getElementsByTagName("head")[0]||document 
    .getElementsByTagName("body")[0]) 
    .appendChild(newJQueryLib);); 
    loadJQuery();'; 
ScriptResult sr = page.executeJavaScript(jQueryInjector); 
+0

1.jQueryInjectorは、executeJavaScriptのパラメータとして使用される1つの文字列です。私はそれをより読みやすくするために引用符と+記号を省いた。 jQueryInjectorは一度定義され、jQueryライブラリが含まれていないと予想される場合は、新しいページごとにexecuteJavaScript(jQueryInjector)が実行されます。 –

+0

2.これはjQueryを挿入する最良の方法ではありません。 evalを使用し、インターネットからjQueryをロードします。将来私は直接DOM操作とローカルライブラリを使用するつもりです。しかし、最初のカットとして、それは私のためにうまく動作します。私はそれが誰かに役立つことを願っています。 –

関連する問題