Aro*_*ron 5 google-chrome-extension service-worker service-worker-events
我正在尝试拦截第三方网站的获取事件并在 Chrome 扩展程序中修改其请求正文。事件处理程序不允许修改请求正文chrome.webRequest.onBeforeRequest。但看起来常规服务工作人员确实有能力侦听和修改 fetch 事件,并使用我自己的响应手动响应请求,这意味着我应该能够拦截请求,修改正文,将修改后的请求发送到API,然后使用我修改后的请求的响应来响应原始请求。
正如我在“网络”面板中看到的那样,尽管网站触发了大量的获取事件,但这些事件处理程序似乎都没有被触发。
// background.js
self.onfetch = (event) => console.log(event.request); // never shows
// or
self.addEventListener("fetch", (event) => {
console.log(event.request); // never shows
});
Run Code Online (Sandbox Code Playgroud)
console.log我可以通过查看Service Worker 控制台中出现的其他日志(顶级日志以及事件触发的日志)来"install"验证Service Worker 是否正在运行
// background.js
console.log(self); // works
self.addEventListener("install", (event) => {
console.log(event); // works
});
Run Code Online (Sandbox Code Playgroud)
提取事件处理程序是否不会被触发,因为出于安全原因不允许扩展服务工作人员访问这些事件处理程序?这是有道理的,我只是没有在任何地方明确地看到这个记录,所以最好知道这是否确实是一个平台限制或者我是否做错了什么。
如果这确实是扩展平台的限制,是否有其他方法可以使用 Chrome 扩展来修改第三方网站上的请求正文?
| 归档时间: |
|
| 查看次数: |
944 次 |
| 最近记录: |