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。
我正在尝试实现以下目标:如果 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。