查到的几乎都是使用 webRequest ,但是这个在 v3 中好像已弃用:
chrome.webRequest.onCompleted.addListener(
function(details) {
console.log("Request completed: ", details);
},
{urls: ["<all_urls>"]}
);
目的是不用通过 dom 抓取内容,通过请求的响应内容能直接获取到更完善的数据,DOM 也是通过响应内容渲染的。
用到了号称插件界的 nextjs 脚手架: https://github.com/PlasmoHQ/plasmo
1
zivW 236 天前
之前 MV3 刚出时 是通过在目标网站注入脚本 hook 掉 window.XMLHttpRequest 实现的,不知道现在有没有更好的方法
|
2
you222 236 天前 1
可以试下 chrome.debugger ,不过需要开启浏览器的调试模式
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { const onEvent = async (source, method, params) => { if (method === "Network.responseReceived") { const { type, response } = params console.log(response.body) } } chrome.debugger.onEvent.addListener(onEvent) }) |
3
wnck 236 天前
基于 webrequest 的好像不行。如果是基于 Tab 做好像可以,指定 tabid 对页面注入 js 脚本来获取这个 tab 下的原始 html
|