Javascript 无法动态更改URL筛选器扩展名

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 ()

这是我的chrome扩展代码:

background.js:

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()},