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