一个油猴脚本(Tampermonkey / Violentmonkey / ScriptCat):点一次链接就直接到目标网站,中间那些「安全提示 / 即将离开 / 确认跳转」的中转页统统跳过;网盘链接顺带把提取码也办了,统一在新标签页打开。
jump-hub.user.js 保存打开面板的方式:
| 场景 | 入口 |
|---|---|
| 本页处理过链接、且页面有页头工具栏 | 工具栏里的「直跳」按钮 |
| 任意页面 | 脚本管理器图标 → 菜单「链接直跳 · 打开面板」 |
面板只是用来看状态和改设置的地方,日常使用完全不需要打开它。
| 功能 | 说明 |
|---|---|
| 免中转直跳 | 中转链接自动换成真实地址,点击直接到目标站,不再「再点一次继续访问」 |
| 新标签打开 | 跳转统一在新标签页,原页面留着不打断 |
| 网盘自动带码 | 点网盘分享链接时自动拼上页面里的提取码,一次直达内容 |
| 分享页自动填码 | 落到网盘分享页后,提取码自动填进输入框并提交 |
| 中转页自动跳 | 万一已经落在中转页(别人分享的旧链接、历史记录),识别后自动走人 |
| 全站可用 | 不依赖站点名单:没适配过的网站,只要链接是「搬运外链」的写法照样识别 |
四条出口层层兜底,任何一条生效就够了:
| 出口 | 做什么 | 为什么需要 |
|---|---|---|
| 改写链接 | 页面渲染出链接后,把地址就地换成真实目标 | 右键菜单、中键新标签、状态栏预览全都保留 |
| 点击兜底 | 点击那一刻再解析一次,直接导航 | 对付动态生成的链接、以及站点自己抢走点击的处理器 |
| 新标签打开 | 拦截后统一新标签打开 | 不打断你原来的位置 |
| 落地自跳 | 已经落在中转页时,评分识别后自动跳走 | 从旧链接、历史记录点进来时的兜底 |
a.example.com → b.example.com 视为站内导航redirect_uri / return_url 这类登录回跳参数原样放行,只处理本身就是跳转页的地址中转壳不止 ?url= 一种写法。以下形态都能解,且解出来的必须是合法网址 + 跳转到别的网站,否则不动:
| 形态 | 例子 |
|---|---|
| 参数搬运 | /go?url=target.com/x(支持二次编码、base64、hex) |
| 路径内嵌编码 | /go/aHR0cHM6Ly9…、/redirect/68747470… |
| 链接文字即地址 | <a href="/go?t=1">https://target.com/x</a> → 按文字指向的地址走 |
落地在中转页时,按信号评分决定要不要自动跳走(阈值 60 分,达线才跳):
| 信号 | 加分 |
|---|---|
| 站点规则命中 | +70(直接达线) |
| 参数里确实带了别的网站的地址 | +25 |
路径像跳转页(/go /jump /link /transfer …) |
+40 |
| 页面写着「即将离开 / 正在跳转 / 安全提示」 | +35 |
| 页面有倒计时 | +10 |
| 页面文本极短 | +5 |
同一个网站的目标不计分 —— 正常文章页不会因为路径里带 /link 就被跳走。
49 条站点规则,命中时解析更快更准;没适配的站点不靠站点名单也能生效。
| 类别 | 条数 | 站点 |
|---|---|---|
| 搜索引擎 | 7 | 百度搜索 · 百度贴吧(含安全检测页) · Bing 搜索 · Google 搜索 / 重定向页 · 360 搜索 · 搜狗搜索 |
| 社区 / 博客 | 24 | 知乎 · 掘金 · CSDN · GitCode · 码云 · 开源中国 · 博客园 · 简书 · 豆瓣 · 少数派 · InfoQ · 51CTO 博客 · 链滴 · LINUX DO · NodeSeek · NGA · 牛客网 · 酷安 · 力扣 · Steam 社区 · 哔哩哔哩游戏 WIKI · 花瓣网 · ACG 盒子 · 书签地球 |
| 内容 / 分享 / 文档 | 8 | 爱发电 · pixiv · 腾讯云开发者社区 · 腾讯兔小巢 · 语雀 · 金山文档 · 腾讯文档 · 石墨文档 |
| 社交 / 海外 | 10 | 微博(含短链接) · 微信(含开放社区) · QQ 邮箱 · PC 版 QQ · Twitter / X · Facebook · Instagram · YouTube |
识别 21 家网盘:百度网盘 · 夸克网盘 · UC 网盘 · 阿里云盘 · 腾讯微云 · 蓝奏云 · 123 云盘 · 4275 极速云 · 中国移动云盘 · 中国联通云盘 · 天翼云盘 · 迅雷云盘 · 115 网盘 · 360 云盘 · 奶牛快传 · 城通网盘 · 文叔叔 · 微盘 · 坚果云 · MEGA · FlowUs 息流。
不用选文字、不用复制粘贴 —— 脚本自己从页面里取码:
帖子:资源一 <a href="https://pan.baidu.com/s/1abc">百度网盘</a> 提取码:k9x2
资源二 <a href="https://drive.uc.cn/s/9zz">UC 网盘</a> 访问码 7w3q
↓ 点第一个链接
https://pan.baidu.com/s/1abc?pwd=k9x2 ← 带的是 k9x2,不是隔壁的 7w3q
↓ 落在分享页
自动填进输入框 → 自动提交
脚本加的参数,脚本自己读,所以不依赖各家网盘认不认这个参数名 —— 认就直接进,不认就由脚本代填,两条路都通。
提取码标签的写法:中文(提取码 / 访问码 / 密码 / 口令…)不用分隔符也认;英文(password / passwd / passcode)必须带 : 或 = 才认,避免把英文正文当密码。
「解压码」是压缩包密码,不是网盘提取码,不会被拼给网盘链接;但它会计入「页面上有几个码」的判断 —— 页上出现了它,「整页只有一个码」的兜底就失效,别的链接不会被错拼。
面板两张页:
| 页 | 内容 |
|---|---|
| 概览 | 当前页命中的规则、三项累计数字(已免中转 / 已处理链接 / 已带提取码)、最近事件、手动「重新扫描本页」 |
| 设置 | 见下表 |
只留「用户真的会想关掉它」的开关——5 个开关,分 4 组:
| 组 | 开关 | 默认 | 什么场景下会想关它 |
|---|---|---|---|
| 主开关 | 总开关 | 开 | 临时不想用它 |
| 跳转行为 | 在新标签页打开 | 开 | 想原地跳转、不留原页面 |
| 落地中转页自动跳走 | 开 | 想自己看一眼那个提示页 | |
| 压掉站点拦截 | 开 | 某个站的功能被压坏了 | |
| 网盘 | 自动带提取码 | 开 | 抓错码(关掉后免中转不受影响) |
| 站点 | 本站不处理 | 关 | 某个站不能动 —— 一键切换,不用手打域名 |
| 站点规则 · 49 条 | 全开 | 某条规则误伤(点标签停用单条) |
另有「入口按钮」显隐(按需 / 总是 / 从不 / 本站从不)与数据清理。
从旧版升级不用管:旧设置自动迁移,迁移完旧键就丢掉,不留幽灵设置。
jump-hub/
├── jump-hub.user.js # 主脚本(零第三方依赖)
├── preview.html # 界面预览(静态渲染,非脚本本体)
├── README.md
├── update.md # 变更日志
└── test/
├── smoke.js # 冒烟测试(233 项)
├── e2e.js # 端到端(159 项,13 个场景,jsdom 跑真实点击链路)
└── preview.js # 生成 preview.html
架构图:architecture-diagram-svg/jump-hub-architecture.svg
node --check jump-hub.user.js # 语法校验
node test/smoke.js # 冒烟测试(233 项)
node test/e2e.js # 端到端(159 项,需先装 jsdom)
node test/preview.js # 重新生成界面预览
端到端覆盖十三个场景:搜索引擎改写、未适配站点、登录链保护、中转页自动跳、网盘填码与带码(多码不串、歧义不猜、解压码不拼)、零提示、新标签、设置、入口按需、真实页面回归(资源帖多链接、资源列表解压码不串码)。jsdom 依赖装在仓库根的 .tmp:
mkdir -p ../.tmp && cd ../.tmp && npm i jsdom
t.cn / bit.ly 需要联网换取真实地址,脚本不发任何网络请求a.example.com → b.example.com 视为站内(宁可少跳,不可跳错)脚本不发任何网络请求,不引入任何第三方依赖。数据只落在脚本管理器自己的存储里:
| 键 | 内容 |
|---|---|
jh.opt |
开关设置 + 不处理名单 + 停用的规则 |
jh.stat |
三个计数(只增不减,纯本地) |
jh.log |
最近 20 条事件(时间 / 类型 / 去向地址,便于自查) |
jh.installed |
首次安装提示标记 |
想清空:「设置 → 数据 → 重置统计与日志」,或在菜单里点「已免中转 N 次」。