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

问题描述 投票:0回答:2

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

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

browser google-chrome-extension firefox-addon firefox-webextensions
2个回答
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!


0
投票

webextension的背景页面是一个网页,可以包含iframe。因此,您应该能够将有问题的页面加载到该框架中,并使用内容脚本对其进行检测,而无需打开选项卡。

© www.soinside.com 2019 - 2024. All rights reserved.