Javascript 当eval';使用新函数生成文本

Javascript 当eval';使用新函数生成文本,javascript,Javascript,我们有一个badge脚本,它提取一个json配置文件,然后异步加载外部脚本,并在加载时执行代码。js作为字符串存储在JSON文件中。为了避免使用eval(),我们执行以下代码: var codeFromJSON = "alert('this far')"; var func = new Function(codeFromJSON); func(); 这可以工作,但在chrome中会返回以下错误,在其他浏览器中也会返回类似错误: Uncaught SyntaxError: Unexpected

我们有一个badge脚本,它提取一个json配置文件,然后异步加载外部脚本,并在加载时执行代码。js作为字符串存储在JSON文件中。为了避免使用eval(),我们执行以下代码:

var codeFromJSON = "alert('this far')";
var func = new Function(codeFromJSON);
func();
这可以工作,但在chrome中会返回以下错误,在其他浏览器中也会返回类似错误:

Uncaught SyntaxError: Unexpected token ILLEGAL 
起初,我认为这与从网络上复制代码片段有关,等等-但我已经重新键入并重新测试了,仍然得到相同的结果


有什么想法吗?

嗯。。。那不会让你走多远
eval
eval
。你不能使用
require
$之类的东西吗。getScript
?它似乎在Chrome中工作……但这与此无关。这并不能避免从文本中意外运行恶意代码的安全问题。至于它是否会创建一个新的js解释器实例,比如
eval
,我不确定…@nbrooks Javascript永远都不安全。您可以随时手动加载外部脚本。感谢大家的评论!我认为,恶意代码问题现在有点无效了。因为所有主要浏览器中的JS控制台都允许您在任何站点上运行所需的任何客户端代码。本例中的关键是确保代码段被隔离,以便它不会与正在运行的其他脚本冲突。我发现了问题所在。愚蠢的错误。。。