首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更好的实践是: eval还是附加脚本?

更好的实践是: eval还是附加脚本?
EN

Stack Overflow用户
提问于 2012-02-03 13:52:02
回答 4查看 14.3K关注 0票数 23

我需要执行从AJAX调用中获得的自定义JavaScript片段。我可以执行字符串的eval,也可以将其附加到DOM的script-tag中。哪种方法更好?

代码语言:javascript
运行
复制
var dynamicScript = 'alert(\'Hello world!\');';

方法1-脚本

代码语言:javascript
运行
复制
var x = '<script type="text/javascript">' + dynamicScript  +'</scr' + 'ipt>';
$(document.body).append(x);

方法2- Eval

代码语言:javascript
运行
复制
eval(dynamicScript);

什么方法更好,为什么?还是有更好的选择?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-03 13:54:22

我更喜欢eval,因为它通常是更快,而不是创建一个脚本标记并附加它(特别是如果您想使用jQuery创建和插入它)。

附带注意(脚本标记的有用应用程序)我还使用了脚本标记插入方法:在Google的扩展中,注入脚本标记是在页面范围内运行代码的唯一方法,因为window对象是沙箱的。

PS。jQuery.getScript()的概念这个方法可能很有用。

票数 15
EN

Stack Overflow用户

发布于 2012-02-03 13:56:05

这两种方法对你所做的都没有那么好。AJAX调用应该返回数据,而不是序列化脚本。这两种方法都为脚本注入打开了大门。

eval应该不惜一切代价被消灭。它是缓慢而危险的,伊瓦尔是邪恶的

票数 2
EN

Stack Overflow用户

发布于 2012-02-03 13:56:06

如果ajax调用返回带有脚本标记的html,则可以使用$.load()导入脚本。

http://api.jquery.com/load/

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

https://stackoverflow.com/questions/9129666

复制
相关文章

相似问题

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