是否有基于浏览器的API可以加载/读取网页的DOM而无需在选项卡中打开它?
考虑到Chrome扩展程序可以制作跨源XMLHttpRequest,我是否可以利用它来读取其他网页的DOM而无需在标签中打开它们?
答案 0 :(得分:1)
这适用于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!
答案 1 :(得分:0)
webextension的背景页是一个网页,可以包含iframe。因此,您应该能够将相关页面加载到该框架中,并使用内容脚本对其进行检测,而无需打开选项卡。