首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >块存储链接的Chrome扩展

块存储链接的Chrome扩展
EN

Stack Overflow用户
提问于 2022-05-03 04:14:49
回答 1查看 65关注 0票数 0

我试图实现以下目标:如果链接与存储在Google存储中的链接匹配,则取消事件(防止页面加载),并在匿名窗口中打开链接。

代码语言:javascript
复制
if link exists in Google storage:
  e.preventDefault();

这个逻辑是在内容脚本中通过将侦听器绑定到文档对象来拦截任何链接来完成的。

代码语言:javascript
复制
document.addEventListener('DOMContentLoaded', () => {
  document.body.addEventListener('click', onClick);
});

但是,在我检查链接是否存在于Google存储中之前,页面将完成加载。我相信这是因为chrome.storage.sync.get是异步的,页面只是在调用e.preventDefault()之前完成加载。

类似的讨论:https://stackoverflow.com/questions/9237044/async-loaded-scripts-with-domcontentloaded-or-load-event-handlers-not-being-call[][1]

我需要的功能:https://stackoverflow.com/questions/38619308/how-to-block-a-tab-from-opening-a-page-on-webnavigation-onbeforenavigate-event[][2]

所接受的答案的问题是页面被部分加载。我根本不想加载这个页面。

如何在没有onClick内部异步调用的情况下从Google存储中获得链接列表?或者如何以不同的方式实现所需的功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-07 15:23:15

我使用chrome.declarativeNetRequest API将用户列出的域名重定向到204,使用onRuleMatchedDebug事件获取原始URL并在匿名窗口中打开它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72094749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档