【发布时间】:2012-02-03 13:52:02
【问题描述】:
我需要执行一段从 AJAX 调用中获得的自定义 JavaScript。我可以对字符串做一个eval,或者我可以将它附加到一个script-tag 到DOM。哪种方法更好?
var dynamicScript = 'alert(\'Hello world!\');';
方法 1 - 脚本:
var x = '<script type="text/javascript">' + dynamicScript +'</scr' + 'ipt>';
$(document.body).append(x);
方法 2 - 评估:
eval(dynamicScript);
什么方法更好,为什么?还是有更好的选择?
【问题讨论】:
-
附言。如果您决定使用方法 1,请将代码更改为
$('<scipt>').text(dynamicScript).appendTo(document.body);想象一下当dynamicScript包含"</script>"时会发生什么。
标签: javascript jquery dom eval