【发布时间】:2018-01-30 20:22:28
【问题描述】:
我正在开发一个浏览器扩展程序,它会根据客户的需求阻止对特定 url 的调用。
需要阻止的 url 作为“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 为空,我有一个默认的 url 模式(基本上什么都不做)。
实际发生的情况是过滤器参数(urls)只被调用一次(在加载扩展时),而不是在每个请求之前。
有没有办法动态改变这个事件的过滤器?
感谢帮助。
【问题讨论】:
-
监听事件的所有 URL 并在你的 "logURL" 方法中读取被阻止的 URL...
-
谢谢。我使用了这个选项并且它有效
标签: javascript firefox-addon-webextensions browser-addons