0

我注意到如果你.load(url)和 url 是一个包含脚本的页面,这些脚本会自动执行。有没有办法在.load(url)不执行脚本的情况下调用,然后再执行它们?即使我在.load(url)尚未附加到文档的元素上使用了它们,它们似乎也会执行。

4

2 回答 2

2

jQueryload()检查script块并执行它们(通过它的 DOM 操作帮助代码)。

您可以请求页面,$.ajax()然后使用该html()方法设置 HTML - 不要使用append(),因为它也会执行script块。

于 2012-06-14T04:50:57.517 回答
2

我相信你可以使用.get(). http://api.jquery.com/jQuery.get/

例如:

$.get('test.html', function(data) {
  // HTML text is now in data variable
  // If we use .html() the scripts are then executed.
  $('.result').html(data);
});

此外,来自.load()文档(http://api.jquery.com/load/):

当使用没有后缀选择器表达式的 URL 调用 .load() 时,内容会在脚本被删除之前传递给 .html()。这会在脚本块被丢弃之前执行它们。但是,如果调用 .load() 时将选择器表达式附加到 URL,则脚本会在 DOM 更新之前被剥离,因此不会执行。

于 2012-06-14T04:52:45.190 回答