javascript - 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();
});
});
解决方案
推荐阅读
- html - 单击事件未触发的动态按钮
- angular - `ngFor` 创建更多项目
- lambda-calculus - 如何在 lambda 演算中证明 XOR true true = false?
- python - 如何从 on_message 事件中获取 Discord 上下文对象?
- android - 我的选项卡布局 Kotlin 有什么问题?
- php - 文件上传后重定向 PHP 脚本
- azure-devops - Azure Devops 构建之间的区别 - 队列与运行管道 REST API
- java - 如何断言是否已调用 lambda
- c# - WCF。在服务端使用 Windows 凭据
- sql - sql 每月现有用户的所有历史记录