浏览器扩展是否可以读取网页的DOM而无需在选项卡中打开它?

时间:2017-12-20 02:33:13

标签: browser google-chrome-extension firefox-addon firefox-webextensions

是否有基于浏览器的API可以加载/读取网页的DOM而无需在选项卡中打开它?

考虑到Chrome扩展程序可以制作跨源XMLHttpRequest,我是否可以利用它来读取其他网页的DOM而无需在标签中打开它们?

2 个答案:

答案 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。因此,您应该能够将相关页面加载到该框架中,并使用内容脚本对其进行检测,而无需打开选项卡。