是否允许嵌套的evals?

时间:2014-07-25 22:07:37

标签: javascript html html5 web eval

我正在尝试使用eval来在我的HTML5 / JS / CSS3项目中运行用户定义的代码。如果用户定义的代码包含eval,则代码运行时JS控制台中会出现以下错误:

Uncaught SyntaxError: Unexpected token ILLEGAL

eval(a);

括号加下划线。有什么提示吗?

BTW:我正在使用Chrome

1 个答案:

答案 0 :(得分:2)

我认为当一个字符串参数在eval里面时,在一个字符串中有'和'时会产生问题.eval是另一个eval中的一个字符串参数。解决方法是将一个函数声明为一个函数,就像在php上的那个一样

当您尝试例如

console.log("hey you !");

添加eval

时效果很好
eval('console.log("hey you!");');

这个也可以正常工作但是如果你想把这个代码包装在eval中你应该添加这样的斜杠

eval('eval(\'console.log("hey you!");\');');

这意味着当用户输入代码时总是需要添加斜杠,这段代码可以帮助你

str = str.replace(/'/g, "\\'");