微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在匹配模式中匹配“chrome-extension://*/”

如何解决在匹配模式中匹配“chrome-extension://*/”

使用 chrome.webRequest.onBeforeSendHeaders.addListener 可以指定一个 requestFilter = { urls: ["<all_urls>"] }; 作为第二个参数

每当我从我的扩展程序中获取数据时,我都会听到流量 {frameId: 0,initiator: "chrome-extension://abcdef" }

虽然我可以使用 chrome-extension 过滤器捕获 <all_url> 架构。我只想将它与 const requestFilter = { urls: ["chrome-extension://*/"] };

匹配

这不起作用,我在 https://developer.chrome.com/docs/extensions/mv2/match_patterns/ 处的文档下的架构中找不到任何关于 chrome-extension 的信息

但是它说The special pattern <all_urls> matches any URL that starts with a permitted scheme。所以它似乎是被允许的,但我不能让它工作。如果您能提供正确方向的任何帮助,我将不胜感激。

谢谢

解决方法

这些并不是真正的网络请求,因此没有标头事件。相反,您可以监听 onBeforeRequest 事件并捕获所有扩展 URL 添加另一个 * 使其看起来像 "chrome-extension://*/*"

chrome.webRequest.onBeforeRequest.addListener(console.log,{
  urls: ["chrome-extension://*/*"],});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。