首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >J2V8可以执行匿名函数吗?

J2V8可以执行匿名函数吗?
EN

Stack Overflow用户
提问于 2017-03-28 23:50:54
回答 1查看 315关注 0票数 0

我正在尝试执行这段javascript代码

代码语言: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 + ')'));
})();

但是我得到了这个错误:

代码语言:javascript
复制
undefined:1: ReferenceError: document is not defined

如果我将函数赋给一个变量,我既没有错误也没有结果。

代码语言:javascript
复制
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中运行这个脚本吗?提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 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); }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43074237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档