javascript - 使用 jQuery 防止 ajax 加载页面上的脚本执行

标签 javascript jquery ajax

我正在尝试使用 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/

相关文章:

javascript - 在 Backbone JS 中获取整个模型

javascript - event.target.id 仅适用于 Chrome

javascript - 安装vertx时出错(vertx运行server.js)

javascript - jquery.append() - 仅附加列表的最后一个元素,前面的元素被删除

jquery - 在隐藏的 div 上添加可见内容

asp.net - 使用 ASP.Net 和 JSON 格式实现 jQuery 的 jgGrid

javascript - 向 planetaryJS globe 添加更多功能

javascript - Chrome 跨站点资源 - 网站无法正常工作

javascript - Instagram 浏览器(适用于 iOS)不显示我网站上的所有元素

javascript - 使用 javascript 提取当前 img src 值