Chrome 阻止存储链接的扩展

Chrome Extension to Block Stored Links

我正在尝试实现以下目标:如果 link 与存储在 Google 存储中的 link 之一匹配,则取消事件(阻止页面加载)并打开link 隐身 window.

if link exists in Google storage:
  e.preventDefault();

此逻辑是在内容脚本中完成的,方法是在文档对象上绑定侦听器以拦截任何 links。

document.addEventListener('DOMContentLoaded', () => {
  document.body.addEventListener('click', onClick);
});

但是,直到我检查 link 是否存在于 Google 存储中,页面才完成加载。我相信这是因为 chrome.storage.sync.get 是异步的,页面在 e.preventDefault() 可以被调用之前刚刚完成加载。

类似讨论:.

我需要的功能:

已接受答案的问题是页面已部分加载。我根本不想加载该页面。

如何在 onClick 内部不进行异步调用的情况下从 Google 存储中准备好 link 的列表?或者我怎样才能以不同的方式实现所需的功能?

我使用 chrome.declarativeNetRequest API to redirect user listed domain names to https://google.com/gen_204, and onRuleMatchedDebug 事件获取原始 URL 并以隐身方式打开它 window。