Chrome扩展程序删除监听器无效

时间:2019-12-26 10:24:16

标签: javascript jquery google-chrome google-chrome-extension

我正在构建我的第一个Chrome扩展程序,这是我几天来一直在苦苦挣扎的问题。

打开扩展名后,它会添加一个侦听器并阻止请求,但是当关闭扩展名时,它应删除该侦听器(而不是阻止请求)。问题是,由于某种原因,removeListener无法正常工作。

  chrome.storage.local.get(["button"], function(result) {
    //
    let extensionState = result.button;
    let blocksRequestsFunction = function(details) {
      if (extensionState === "on") {
        console.log("blocking:", details.url);
        return { cancel: true };
      } else {
        console.log("it's off");

        chrome.webRequest.onBeforeRequest.removeListener(
          blocksRequestsFunction
        );
        return { cancel: true };
      }
    };

    function blocksAds() {
      chrome.webRequest.onBeforeRequest.addListener(
        blocksRequestsFunction,
        { urls: ["*://*.adjaranet.com/"] },
        ["blocking"]
      );
    }

    blocksAds();
  });
});

0 个答案:

没有答案