个人维护的 Tampermonkey 用户脚本集合,用于增强日常常用网站的浏览体验。
| 脚本 | 版本 | 适用站点 | 功能简介 |
|---|---|---|---|
| 4d4y-open-in-new-tab.js | 1.1 | 4D4Y 论坛 | 帖子标题点击在新标签页打开 |
| cnblogs-plus.js | 1.2 | 博客园 | 自动展开代码块 + 文章标题新标签页打开 |
| doubao-image-download.js | 1.1 | 豆包/Dola | 无水印图片下载(悬停按钮 + 右键菜单) |
| github-rss-inoreader-helper.js | 1.1 | GitHub | 侧边栏注入 RSS 订阅区域,支持一键导入 Inoreader & 复制 URL |
| hupu-plus.js | 1.1 | 虎扑 | 手机版自动跳转 PC 网页版 + 回帖表情包自动缩小 |
| x-bird-logo.js | 1.1 | X (Twitter) | 修复用户名小鸟图标 (U+EA00) 方块显示问题 |
| x-time.js | 1.1 | X (Twitter) | 动态绝对时间格式化(今天/今年/往年) |
- 安装 Tampermonkey 浏览器扩展
- 点击上方脚本链接,进入源码页面
- 复制全部内容,在 Tampermonkey 中新建脚本并粘贴保存
或直接将 .js 文件拖入 Tampermonkey 管理面板导入。
- 文件:
4d4y-open-in-new-tab.js - 匹配:
*://www.4d4y.com/forum/forumdisplay.php*
强制 4D4Y 论坛帖子列表中的标题链接在新标签页打开,避免覆盖当前页面。为链接添加 target="_blank" 和 rel="noopener noreferrer",支持 MutationObserver 适配动态加载。
- 文件:
cnblogs-plus.js - 匹配:
*://www.cnblogs.com/*
两个功能合一:
- 自动展开代码块 — 博客园折叠状态的代码块自动点击展开,无需手动逐个点击。
- 标题新标签页打开 — 博主主页的文章标题链接在新标签页打开(官方首页跳过此功能,但代码展开仍然生效)。
通过 MutationObserver + 防抖 + 有限轮询三重保障,覆盖异步加载和无限滚动场景。
- 文件:
doubao-image-download.js - 匹配:
*://*.doubao.com/*、*://*.dola.com/*、*://*.cici.com/*等 - 来源: adapted from Qalxry (GPL-3.0)
为豆包与国际版 Dola 生成的图片提供无水印下载:
- 悬停按钮 — 鼠标悬停到候选图片/画布上时,右上角浮现「⬇ 无水印」按钮,点击即下载。
- 右键菜单 — 右键图片后在站点菜单中注入「下载无水印原图」项。
实现亮点:
- 通过 React Fiber 内部属性(
__reactFiber$)递归扫描 props,从渲染层提取原始图片地址,跨提升大小而无需依赖易变的站点选择器。 - 直链可用(无
watermark/wm/mark参数)时直接下载;否则利用预览图与下载底图「左上角区域重叠」特点,通过canvas拼合去水印。 - 支持图片识别与文件格式(jpg/png/webp/gif/avif)自动匹配扩展名。
- 借助
GM_xmlhttpRequest+@connect *跨域拉取原图,避免页面 CORS 限制。 - 悬停/右键均优先定位当前预览图中「可见、居中、面积最大」的活动图片。
- 文件:
github-rss-inoreader-helper.js - 匹配:
https://github.com/*/*
在 GitHub 仓库页面的右侧边栏注入 RSS 订阅区域,支持四种 Feed:
| Feed | URL 后缀 | 默认状态 |
|---|---|---|
| Tags | tags.atom |
开启 |
| Releases | releases.atom |
开启 |
| Issues | issues.atom |
开启 |
| Commits | commits.atom |
关闭(更新频繁,减少噪音) |
每个 Feed 提供两个操作:
- Inoreader — 一键跳转到 Inoreader 订阅页面
- Copy — 复制 RSS 链接到剪贴板
通过 Tampermonkey 菜单可逐项开关各 Feed 类型。兼容 GitHub 最新 UI(基于 data-component / data-position 语义化属性定位,不依赖构建哈希变化的 CSS Modules 类名)。
- 文件:
hupu-plus.js - 匹配:
*://m.hupu.com/bbs-share/*、*://m.hupu.com/bbs/*、https://bbs.hupu.com/*
两个模块:
- 手机版 → 网页版自动跳转 — 访问
m.hupu.com的帖子链接时,自动重定向到bbs.hupu.com的 PC 网页版。兼容 Google 搜索链接(无.html后缀)和 App 分享链接。 - 回帖表情包自动缩小 — 网页版中超过 150px 的回帖表情包图片自动缩小显示,主帖图片保持不变。缩小后鼠标悬停提示可放大,并优化图片加载源以减少带宽。
- 文件:
x-bird-logo.js - 匹配:
https://x.com/*、https://twitter.com/*
修复部分系统(如 Windows)上无法显示的用户名小鸟图标问题。X 使用 U+EA00 私有区字符表示小鸟图标,该字符在缺少 Chirp 字体的系统上会显示为方块。
实现方式:
- 引用 X 官方 Chirp 字体,限定
unicode-range: U+EA00 - 主动预加载字体,避免首次渲染时方块字符来不及替换
- 字体放在
font-family最前面,防止其他图标字体截胡该码位 - 监听
MutationObserver(childList + characterData)、路由变化(History API)、低频定时扫描,覆盖虚拟滚动列表复用和页面切换场景
- 文件:
x-time.js - 匹配:
https://x.com/*、https://twitter.com/*
根据日期智能显示时间格式:
| 时间范围 | 显示格式 | 示例 |
|---|---|---|
| 今天 | HH:mm |
14:30 |
| 今年(非今天) | MM-DD HH:mm |
07-24 14:30 |
| 往年 | YYYY-MM-DD HH:mm |
2025-07-24 14:30 |
X 客户端会周期性地把时间重写回相对格式(如 "5m" → "6m"),脚本通过 characterData 监听捕获并重新格式化,确保始终显示绝对时间。
- 所有脚本均使用 IIFE 封装,不污染全局作用域
- 动态内容通过
MutationObserver实时处理,适配 SPA 和异步加载 - 关键场景搭配防抖、轮询兜底,确保可靠性
- 兼容各站点最新 UI 变化
GeBron
MIT