是否有基于浏览器的API可以加载/读取网页的DOM而无需在选项卡中打开它?
鉴于Chrome扩展可以制作跨源XMLHttpRequest,我是否可以利用它来读取其他网页的DOM而无需在标签中打开它们?
这适用于firefox ..还没有尝试过chrome:
let xhr = new XMLHttpRequest();
xhr.onload = () => {
let doc = xhr.responseXML;
//todo...
}
xhr.onerror = () => console.error('error');
xhr.open("GET", url);
xhr.responseType = "document";
xhr.send();
这为您提供了一个文档,可以像普通的JavaScript文档一样使用。
编辑: 请记住,有些网页使用javascript创建或修改dom。上面的代码只会给你原始HTML的dom,好像没有运行javascript!
webextension的背景页面是一个网页,可以包含iframe。因此,您应该能够将有问题的页面加载到该框架中,并使用内容脚本对其进行检测,而无需打开选项卡。