Javascript 无法动态更改URL筛选器扩展名
这是我的chrome扩展代码: background.js:Javascript 无法动态更改URL筛选器扩展名,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,这是我的chrome扩展代码: background.js: var blockedUrls = function () { if (localStorage.blocks) { return JSON.parse(localStorage.blocks).urls } else { return []; } } chrome.webRequest.onBeforeRequest.addListener( function ()
var blockedUrls = function () {
if (localStorage.blocks) {
return JSON.parse(localStorage.blocks).urls
} else {
return [];
}
}
chrome.webRequest.onBeforeRequest.addListener(
function () {
return {cancel: true};
},
{urls: blockedUrls()},
["blocking"]
);
manifest.json:
{
"name": "HintBlockRequest",
"version": "1.0.0",
"manifest_version": 2,
"description": "Block URLS",
"background": {
"scripts": [ "background.js"]
},
"browser_action": {
"default_icon": "icon.png",
"default_title": "Hint Block Request"
},
"icons": {
"16": "icon_16.png",
"48": "icon_48.png",
"128": "icon_128.png"
},
"permissions": [
"storage",
"webRequest",
"webRequestBlocking",
"<all_urls>"
]
}
应更新URL筛选器
工作守则如下:
chrome.webRequest.onBeforeRequest.addListener(
function () {
return {cancel: true};
},
{urls: ['https://*/*css*','http://*/*css*']},
["blocking"]
);
(无功能)
我得到的错误是:
Uncaught Error: Invalid value for argument 1. Property 'urls': Expected 'array' but got 'function'.
at validate (extensions::schemaUtils:34:13)
at WebRequestEventImpl.addListener (extensions::webRequestEvent:80:3)
at WebRequestEvent.publicClassPrototype.(anonymous function) [as addListener] (extensions::utils:138:26)
at chrome-extension://gccoagdpplpkngajecblejkpopiojofd/background.js:13:35
blockedUrls
是一个返回数组的函数,但您没有调用它。所以不是
{urls: blockedUrls},
你需要
{urls: blockedUrls()},
你的问题就在哪一行?background.js:13hi!你解决了这个问题吗?我也有类似的问题。。。不确定函数“blockedUrls()”是否在URL参数中动态工作:/Thank。现在我没有收到错误,但是,当我尝试加载扩展的一个资源时,我得到flgfkoakmmpjlmkdelkhhpiiIiocke被扩展阻止了对服务器的请求。尝试禁用扩展。例如,当试图点击:chrome时,错误被客户端阻止-extension://flgfkoakmmpjlmmkdelkhhpiimiiocke/icon.png@AdiOhana您可能还没有本地存储中的块。正确。我仍然没有本地存储中的块。但是我仍然应该能够访问扩展资源,不是吗?@AdiOhana实际上我只知道你问题的答案,那就是,你没有调用返回数组的函数。因为我还没有研究过浏览器扩展,所以我不知道第二个问题的答案。我认为最好是接受我的回答,因为它解决了最初的问题,并就新问题提出了一个单独的问题。然后,那些对浏览器扩展更具说服力的人将能够帮助您。谢谢。我会尽力了解延期的问题所在
{urls: blockedUrls()},