首页 > 解决方案 > Chrome 扩展删除侦听器不起作用

问题描述

我正在构建我的第一个 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();
  });
});

标签: javascriptjquerygoogle-chromegoogle-chrome-extension

解决方案


推荐阅读