2017-03-28 9 views
0

私はjavascriptのコードJ2V8は匿名機能を実行できますか?

(function() { 
    var z = ''; 
    var b = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; 
    for (var i = 0; i < b.length; i += 2) { 
     z = z + parseInt(b.substring(i, i + 2), 16) + ','; 
    } 
    z = z.substring(0, z.length - 1); 
    eval(eval('String.fromCharCode(' + z + ')')); 
})(); 

のこの部分を実行しようとしているが、私はこのエラーを得た:

undefined:1: ReferenceError: document is not defined 

私は関数を変数に割り当てると、私はエラーも結果もないではない持っています。

var a = function() { 
    var z = ''; 
    var b = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; 
    for (var i = 0; i < b.length; i += 2) { 
     z = z + parseInt(b.substring(i, i + 2), 16) + ','; 
    } 
    z = z.substring(0, z.length - 1); 
    eval(eval('String.fromCharCode(' + z + ')')); 
}; 

このスクリプトをJ2V8で実行する方法について知りましたか? ありがとうございました

+0

'に、String.fromCharCode(NaNには、NaN、NaNには、NaN、NaNには、NaN、NaNには、NaN、NaNには、NaN、NaNには、NaN、NaNには、NaN、NaNには、NaN、NaNには、NaN、NaNに、NaN、NaN、NaN、NaN、NaN、NaN、NaN、NaN) - WTF?あなたがエラーを得るために 'b'のあなたの実際の値を投稿してください。 – Bergi

答えて

0

私は正直言って、私はJSが何をすべきか分かりません。 evalevalにラップされていて、その関数にはreturn文がありません。さらに、xxxxxは有効な入力ではないようです。

私はラップされた評価を削除した場合、変数bの数値を使用して結果を返します。

@Test public void testExample2() { String jsCode = "(function() {\n" + "var z = '';\n" + "var b = '12345678';\n" + "for (var i = 0; i < b.length; i += 2) {\n" + " z = z + parseInt(b.substring(i, i + 2), 16) + ',';\n" + "}\n" + "z = z.substring(0, z.length - 1);\n" + "return eval('String.fromCharCode(' + z + ')');\n" + "})();"; Object result = v8.executeScript(jsCode); System.out.println(result); }

関連する問題