次のように、JavaScriptコードを実行するcrawljax用のプラグインを作成しようとしています:
String result = browser.executeJavaScript(script).toString();
およびスクリプト コード:
function getElementPosition(id) {
var element = document.getElementById(id);
return JSON.stringify(elementpos(findPosX(element), findPosY(element)));
}
function elementpos(x, y) {
elementpos = new Object();
elementpos.x = x;
elementpos.y = y;
return elementpos;
}
return getElementPosition("foo");
これは正常に返されますが、結果は常に null です。document.write を使用して同じものを出力しても、うまくフォーマットされた JSON 文字列が得られます。
{"x":8, "y":24}
私は何か誤解していますか?JSON 文字列と Java で起こる奇妙なことはありますか? 私はJavaScriptの経験があまりないので、そのまま戻ってはいけませんか?
これを Google Chrome v. 25 でテストしています。
注:Crawljax自体とは何の関係もないと思います。JSON文字列を返すスクリプトもある別のプラグイン(他の誰かによって書かれたもの)があるためですが、それは完全にうまくいくようです...