我正在开发一个浏览器扩展程序,根据客户需求阻止对特定网址的调用。
需要阻止的网址传递为“localStorage”参数。
这是我的扩展程序代码:
function logURL(requestDetails) {
console.log("Loading: " + requestDetails.url);
return {cancel: true};
}
browser.webRequest.onBeforeRequest.addListener(
logURL,
{urls: (localStorage.getItem('block_urls') ? localStorage.getItem('block_urls') : ["https://default/default"] )},
["blocking"]
);
我期望发生的是,在每个请求之前,将从localStorage读取URL并相应地阻止。如果localStorage为null,我有一个默认的url模式(基本上什么都不做)。
实际发生的是,过滤器参数(urls)只被调用一次(加载扩展名时)而不是每个请求之前。
有没有办法动态更改此事件的过滤器?
感谢帮助者。
答案 0 :(得分:1)
有两种方法可以做到这一点: