我注意到,如果您.load(url)
并且网址是包含脚本的网页,则会自动执行这些脚本。有没有办法在没有脚本执行的情况下调用.load(url)
,然后可能稍后执行它们?即使我在未附加到文档的元素上使用.load(url)
,它们似乎也会执行。
答案 0 :(得分:2)
jQuery的load()
检查script
块并执行它们(通过其DOM操作帮助程序代码)。
您可以使用$.ajax()
请求页面,然后使用html()
方法设置HTML - 不要使用append()
,因为它也会执行script
块
答案 1 :(得分: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()。这将在丢弃之前执行脚本块。但是,如果使用附加到URL的选择器表达式调用.load(),则在更新DOM之前会删除脚本,因此不会执行脚本。