我正在尝试执行这段javascript代码
(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中运行这个脚本吗?提前谢谢你
发布于 2017-06-17 00:51:00
老实说,我不知道JS应该做什么。您有一个包装在eval中的eval,而函数没有return语句。另外,xxxxx似乎不是有效的输入。
话虽如此,如果我删除包装的eval,为变量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); }
https://stackoverflow.com/questions/43074237
复制相似问题