我想有条件地为请求块添加和删除侦听器,但是当我删除侦听器时,我会遇到无限循环,并且该站点将不会加载anmyore。我正在使用存储设备和一个按钮将状态设置为false,然后将监听器设置为true,如果设置为false,则应删除监听器。
chrome.storage.onChanged.addListener(function (changes, namespace) {
for (var key in changes) {
var storageChange = changes[key];
console.log('Storage key "%s" in namespace "%s" changed. ' +
'Old value was "%s", new value is "%s".',
key,
namespace,
storageChange.oldValue,
storageChange.newValue);
}
chrome.storage.sync.get('status', function (data) {
chrome.webRequest.onBeforeRequest.addListener(
removeJS,
{
urls: ["https://devtest.com*"],
types: ["script"]
},
["blocking"]);
function removeJS() {
if (data.status === true) {
return {
cancel: true,
}
}
}
if (data.status === false) {
chrome.webRequest.onBeforeRequest.removeListener(removeJS);
}
});
});
我不知道我是否正确引用了回调。也许是问题所在,但我已经尝试了很多解决方案。