首页 > 解决方案 > activeTab 在 Chrome 扩展程序中无法与 webRequest 一起使用

问题描述

这是给我带来问题的代码(在我的后台脚本中):

chrome.webRequest.onCompleted.addListener((details) => {
    if(details.type == "main_frame"){
        randomname(details.url);
    }
},{urls: ["http://*/*","https://*/*"]},["responseHeaders"]);

这是我的权限manifest.json

"permissions": ["activeTab", "storage", "unlimitedStorage"]

这是我得到的错误:

Uncaught TypeError: Cannot read property 'onCompleted' of undefined

当我将权限更改为此时,错误消失了:

"permissions": ["webRequest", "activeTab", "http://*/*", "https://*/*", "storage", "unlimitedStorage"]

我不明白为什么我必须webRequest在我的权限中指定和主机。根据activeTab 文档,从技术上讲,我应该能够...

“使用 webRequest API 拦截选项卡中对选项卡主框架来源的网络请求。扩展程序暂时获取选项卡主框架来源的主机权限。”

此外,他们的示例使用activeTab没有webRequest在权限中声明。

标签: javascriptgoogle-chromegoogle-chrome-extension

解决方案


推荐阅读