我想知道是否有人可以解释使用Javascript的eval()和另一种方法(如使用JQuery创建脚本标记,然后将该元素附加到页面)之间的区别:eval()和附加脚本标记之间的Javascript差异
eval(somecode);
与
$("<script type='text/javascript'>"+somecode+"</script>").appendTo("head");
不知道这是否是相关的,但这里的背景:我有一个版本的Drupal的弹出窗口模块,其基本目的是为了轻松地将常规链接到弹出窗口工作通过AJAX处理整个页面请求并将其附加到模态窗口中的页面。这通常包括外部CSS和Javascript文件。为了提高所有这些AJAX加载的性能,我切换到使用AJAX队列,并且将外部脚本的eval()更改为列出的替代方法。但是,这导致各种其他页面上出现零星的Javscript错误。
我看不出如何使用eval来完成jquery的工作。 Eval用于将诸如json响应字符串之类的东西变成数组以及类似的东西。 – 2011-02-04 23:41:43
@MattPhillips评估代码。 – Raynos 2011-02-04 23:46:18
@Matt - jQuery包含一些内部函数,它通过将脚本标记附加到文档中来“评估”代码。IIRC,`globalEval`被jQuery的AJAX函数广泛使用,包括相同域脚本和JSONP。 – 2011-02-05 00:04:30