我正在尝试使用 load() 函数加载页面,问题是加载时正在执行该页面上的 javascript 代码。我用这个:
$('#itemid').load('thepage.php #selector', function() {
MY CODE HERE
});
如何阻止 JavaScript 代码被执行并仅加载我想要的 HTML 部分?
最佳答案
使用.get()
或.post()
并处理您返回的内容。在将返回的代码附加到页面之前,从返回的代码中提取脚本标记,或者直接提取所需的代码:
$.post('thepage.php', {
data: myData
}, function(data) {
var myHTML = $(data).not('script');
$('#itemid').html(myHTML);
});
或者:
$.post('thepage.php', {
data: myData
}, function(data) {
var myHTML = $(data).filter('#selector');
$('#itemid').html(myHTML);
});
演示:http://jsfiddle.net/jtbowden/wpNBM/
注意: 正如您所提到的,使用带负载的选择器应该可以完成相同的任务,如示例中所示。因此,如果它不以这种方式工作,则可能会发生其他事情。
关于javascript - 使用 jQuery 防止 ajax 加载页面上的脚本执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829131/