You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome扩展Manifest V3中chrome.webRequest.onBeforeRequest无法触发求助

Manifest V3 中 chrome.webRequest.onBeforeRequest 事件无法触发问题

我曾在基于Manifest V2的Chrome扩展中,使用chrome.webRequest.onBeforeRequest获取当前标签页的所有图片请求,代码如下:

const dataSet = {};
chrome.webRequest.onBeforeRequest.addListener(function (details) {
    if (details && details.url && details.type === "image") {
        if (!dataSet[tabId]) {
            dataSet[tabId] = new Set([]);
        }
        const currentSet = dataSet[tabId];
        currentSet.add(details.url);
    }
}, {
    urls: ["<all_urls>"]
});

将代码迁移到Manifest V3后,该事件完全无法触发。我先后尝试了两种解决方案:

方案一:结合 chrome.webNavigation.onBeforeNavigate 使用

chrome.webNavigation.onBeforeNavigate.addListener(function(){
   // 此事件未触发
   chrome.webRequest.onBeforeRequest.addListener(function(details){

   },{urls: ["<all_urls>"], types: ["main_frame"]});
},{
    url: [{hostContains:"domain"}]
});

方案二:结合 webNavigation.onHistoryStateUpdated 使用

chrome.webNavigation.onHistoryStateUpdated.addListener((details) => {
    console.log('wake me up', details);
    chrome.webRequest.onBeforeRequest.addListener(
        (details) => {
          console.log(details);
        },
        {
          urls: ['<all_urls>'],
        }
    );
});

但两种方案均无效,chrome.webRequest.onBeforeRequest始终未触发,背景页控制台无对应输出。


内容的提问来源于stack exchange,提问作者Armen Stepanyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:05:58