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