我需要执行从AJAX调用中获得的自定义JavaScript片段。我可以执行字符串的eval,也可以将其附加到DOM的script-tag中。哪种方法更好?
var dynamicScript = 'alert(\'Hello world!\');';方法1-脚本
var x = '<script type="text/javascript">' + dynamicScript +'</scr' + 'ipt>';
$(document.body).append(x);方法2- Eval
eval(dynamicScript);什么方法更好,为什么?还是有更好的选择?
发布于 2012-02-03 13:54:22
我更喜欢eval,因为它通常是更快,而不是创建一个脚本标记并附加它(特别是如果您想使用jQuery创建和插入它)。
附带注意(脚本标记的有用应用程序)我还使用了脚本标记插入方法:在Google的扩展中,注入脚本标记是在页面范围内运行代码的唯一方法,因为window对象是沙箱的。
PS。jQuery.getScript()的概念这个方法可能很有用。
发布于 2012-02-03 13:56:05
这两种方法对你所做的都没有那么好。AJAX调用应该返回数据,而不是序列化脚本。这两种方法都为脚本注入打开了大门。
eval应该不惜一切代价被消灭。它是缓慢而危险的,伊瓦尔是邪恶的
发布于 2012-02-03 13:56:06
如果ajax调用返回带有脚本标记的html,则可以使用$.load()导入脚本。
http://api.jquery.com/load/
https://stackoverflow.com/questions/9129666
复制相似问题