gpt4 book ai didi

javascript - 带有动态过滤器的 onBeforeRequest 事件

转载 作者:行者123 更新时间:2023-12-03 02:36:21 25 4
gpt4 key购买 nike

我正在开发一个浏览器扩展,它可以根据客户需求阻止对特定网址的调用。

需要阻止的 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 为 null,则我有一个默认的 url 模式(基本上什么也不做)。

实际发生的情况是,过滤器参数(url)仅被调用一次(加载扩展程序时),而不是在每个请求之前调用。

有什么方法可以动态更改此事件的过滤器吗?

感谢各位的帮助。

最佳答案

有两种方法可以做到这一点:

  • 监听每个可能的 URL,并使用简单的“if”语句过滤出您自己需要的事件
  • 当 browser.storage.local 的内容发生变化时,移除事件监听器并重新附加事件监听器

关于javascript - 带有动态过滤器的 onBeforeRequest 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48521039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com