《他们活着》(1988) 启发的广告拦截器

Hacker News Top 工具

摘要

一款 uBlock Origin Lite 的小众浏览器扩展分支,它并非隐藏被拦截的广告,而是将其替换为电影《他们活着》中的标语。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/05/12 03:55

davmlaw/they_live_adblocker 源地址:https://github.com/davmlaw/they_live_adblocker

They Live 广告拦截器

They Live 广告牌

这是 uBlock Origin Lite (https://github.com/uBlockOrigin/uBOL-home) 的一个分支版本。与通常通过隐藏方式移除被外观规则(cosmetic rules)阻止的广告不同,它会将这些广告替换为带有约翰·卡彭特 1988 年电影《They Live》中口号的白色方块:OBEY(服从)、CONSUME(消费)、WATCH TV(看电视)、SLEEP(睡觉)、SUBMIT(屈服)、CONFORM(顺从)、STAY ASLEEP(保持沉睡)、BUY(购买)、WORK(工作)、NO INDEPENDENT THOUGHT(无独立思想)、DO NOT QUESTION AUTHORITY(勿质疑权威)。

每个被拦截的广告会随机从列表中选取一个短语显示。这个创意源自我 2015 年写的一篇博客(当时一直没来得及实现):They Live adblock mode (https://proceduralgraphics.blogspot.com/2015/04/they-live-adblock-mode.html)。

截图

安装

从 Releases 页面 (https://github.com/davmlaw/they_live_adblocker/releases) 下载最新的 uBOLite_theylive.chromium.zip,解压后,在 Chromium / Chrome / Brave / Edge 浏览器中执行以下步骤:

  1. 打开 chrome://extensions
  2. 开启右上角的 开发者模式(Developer mode)
  3. 点击 加载已解压的扩展程序(Load unpacked),并选择刚才解压的文件夹

请保留该文件夹——扩展程序将从该路径加载。

如何让广告真正被替换

默认情况下,uBO Lite 使用基础(Basic)过滤模式,该模式在网络层阻止广告。在网络层被阻止的广告根本不会生成 DOM 元素,因此没有内容可以被“They Live 化”——你只会看到空白区域,这与普通的 uBO Lite 行为一致。

若要看到 OBEY 方块:

  1. 点击工具栏上的 uBO Lite 图标 → 齿轮图标(⚙)→ 仪表盘(Dashboard)。
  2. 将你关心的网站的过滤模式设置为 OptimalComplete
  3. 重新加载页面。

从源码构建

需要 Node 22。

git clone --recursive https://github.com/davmlaw/they_live_adblocker
cd they_live_adblocker/uBlock
nvm use 22 # 或确保 Node 版本 >= 22
tools/make-mv3.sh chromium # 或者:firefox | edge | safari

打包好的扩展程序位于 uBlock/dist/build/uBOLite.chromium/ 目录下——请以未打包扩展的形式加载它。

工作原理

uBO Lite 的外观过滤(cosmetic filtering)通常会注入类似 selector { display: none !important } 的 CSS 来隐藏匹配的广告元素。这个分支修改了这些注入点,改为应用一个白色遮罩,并通过 ::after 伪元素叠加内容,其 content 属性读取自 data-ubol-they-live 属性。随后,脚本会遍历 DOM(使用 MutationObserver 监控后期加载的广告),为每个匹配的元素打上列表中随机选出的短语标签。

davmlaw/uBlock (https://github.com/davmlaw/uBlock/tree/they-live) 子模块中修改的文件:

  • platform/mv3/extension/js/scripting/they-live.js (新增) — 短语列表、CSS 生成器、DOM 标签标记
  • platform/mv3/extension/js/scripting/css-{specific,generic,procedural-api}.js — 调用站点
  • platform/mv3/extension/js/scripting-manager.js — 在消费者之前注册 they-live.js

注意事项

  • 这是个人的爱好项目分支;并非 uBlock Origin 官方产品。请勿针对此版本向 uBO 提交问题反馈。
  • 强制使原本隐藏的元素可见,偶尔会导致页面布局偏移,特别是在网站 CSS 假设广告位已折叠的情况下。
  • 用户自定义的外观过滤规则仍然会正常隐藏广告(不会应用 OBEY 效果)。
  • 在网络层被阻止的广告(占 uBO Lite 拦截的大部分)不会被替换——只有被外观规则过滤的广告才会被替换。

许可证

GPL-3.0,与上游 uBlock Origin / uBO Lite 相同。

相似文章

Agent Browser Shield

Product Hunt

Agent Browser Shield 是一款阻止提示注入攻击并降低 AI 浏览器代理 token 成本的产品。