一尘不染

jQuery解析HTML而不加载图像

ajax

我从其他页面加载HTML以提取并显示该页面中的数据:

$.get('http://example.org/205.html', function (html) {
    console.log( $(html).find('#c1034') );
});

确实可以,但是由于$(html)我的浏览器尝试加载在205.html中链接的图像。这些图像在我的域中不存在,因此出现很多404错误。

有没有办法像解析页面一样$(html)但不将整个页面加载到浏览器中?


阅读 252

收藏
2020-07-26

共1个答案

一尘不染

实际上,如果您查看jQuery文档,它说您可以将“所有者文档”作为第二个参数传递给$

因此,我们可以做的是创建一个虚拟文档,以使浏览器不会自动加载提供的HTML中存在的图像:

var ownerDocument = document.implementation.createHTMLDocument('virtual');
$(html, ownerDocument).find('.some-selector');
2020-07-26