如何使用uBlock Origin拦截"Sign-In with Google"类型iframe弹窗
拦截Google一键登录iframe弹窗的可行方案
1. 浏览器原生设置拦截(无需额外工具)
- 禁用第三方Cookie:绝大多数Google身份验证iframe依赖第三方Cookie实现识别和弹出逻辑,通用操作路径为
设置 → 隐私和安全 → Cookie 和其他网站数据 → 阻止所有第三方Cookie,也可单独将accounts.google.com添加到Cookie阻止名单,该操作不会影响Google主站自身的登录状态。 - 禁止自动弹出弹窗:在浏览器站点权限设置中,将
弹出式窗口和重定向权限默认设置为阻止,也可单独对高频访问的站点单独配置该权限。
2. 内容拦截工具规则(适用于AdGuard、uBlock Origin等广告过滤扩展)
直接添加以下自定义过滤规则即可实现全量拦截:
- 拦截Google身份服务的iframe子文档加载:
||accounts.google.com/gsi/*$subdocument - 拦截关联的前端SDK脚本加载:
||accounts.google.com/gsi/client - 隐藏页面内嵌的弹窗容器:
*##div[class*="google-one-tap"]
三类规则配合可以覆盖绝大多数场景,不会影响站点自身的核心功能。
提示:如果部分站点你确实需要使用Google账号登录,临时禁用对应规则后刷新页面即可,使用完成后再重新开启不影响后续拦截效果。
3. 油猴(Tampermonkey)自定义脚本(适合有定制需求的用户)
如果上述规则存在漏网之鱼,可以使用自定义脚本主动扫描并移除页面加载的Google登录相关节点,核心脚本示例如下:
// ==UserScript== // @name 移除Google一键登录弹窗 // @match *://*/* // @grant none // ==/UserScript== setInterval(() => { // 移除Google登录iframe document.querySelectorAll('iframe[src*="accounts.google.com/gsi/"]').forEach(el => el.remove()); // 移除页面内置的弹窗容器 document.querySelectorAll('div[id^="g_id_onload"], div[class*="google-one-tap"]').forEach(el => el.remove()); // 移除关联的SDK脚本标签 document.querySelectorAll('script[src*="accounts.google.com/gsi/client"]').forEach(el => el.remove()); }, 1000);
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

