【发布时间】:2022-11-21 15:13:20
【问题描述】:
我尝试用 React js 开发我的第一个 chrome 扩展。当我尝试使用 chrome.webRequest API 阻止 chrome 扩展中的 URL 在错误页面中显示两个错误。
'webRequestBlocking' 需要清单版本 2 或更低版本。
未经检查的 runtime.lastError:您无权使用阻塞 webRequest 侦听器。请务必在清单中声明 webRequestBlocking 权限。
并且我在清单文件中声明了“webRequestBlocking”权限。这是我的 manifest.json
{ "manifest_version": 3, "name": "Chrome Extension", "description": "First Extension", "options_page": "options.html", "background": { "service_worker": "background.bundle.js", "matches": [ "<all_urls>" ] }, "action": { "default_title": "Open Extension", "default_icon": "icon-34.png" }, "icons": { "128": "icon-128.png" }, "content_scripts": [ { "matches": [ "http://*/*", "https://*/*", "<all_urls>" ], "js": [ "contentScript.bundle.js" ], "css": [ "content.styles.css" ] } ], "devtools_page": "devtools.html", "web_accessible_resources": [ { "resources": [ "content.styles.css", "icon-128.png", "icon-34.png" ], "matches": [] } ], "permissions": [ "activeTab", "tabs", "webRequest", "webRequestBlocking" ], "host_permissions": [ "<all_urls>" ] }这是我的 background.js
chrome.webRequest.onBeforeRequest.addListener( function(details) { console.log(details); return {cancel: true}; }, {urls: ["https://reactjs.org/"]}, ["blocking"] );我试过删除 webRequestBlocking 但也一样。谁能帮我解决这个问题?
【问题讨论】:
-
我们不能使用清单 v2。谷歌浏览器扩展开发文档告知了这一点。 “自 2022 年 1 月 17 日起,Chrome 网上应用店已停止接受新的 Manifest V2 扩展。我们强烈建议新扩展以 Manifest V3 为目标。”
-
请改用 declarativeNetRequest。
标签: reactjs google-chrome-extension webrequest manifest.json