脚本激活模式——执行一次,自动作用于同类网址
什么是脚本激活模式
脚本激活模式是 uWeb 独创的一个机制:当你在某个网站上手动执行了某个临时脚本(如 bookmarklet 或特色服务的脚本),这个脚本就会被"激活"。激活后,它会自动作用于所有同类网址——不需要你把它保存到 sitejs/ 目录,也不需要每次手动执行。
为什么需要这个功能
想象这样一个场景:你在知乎上发现了一个"回答按点赞数排序"的 bookmarklet,手动执行了一次觉得好用。在普通浏览器里,你需要:
- 把这段代码存到本地
- 装油猴扩展
- 为知乎写一个 @match 规则
- 可能还要处理知乎的 CSP
四个步骤。在 uWeb 里,你只需要:
- 手动执行一次这个 bookmarklet
- 它自动被激活,此后知乎上所有页面自动应用这个排序脚本
一步到位。
激活条件与范围
脚本被激活后:
- 自动作用于同类网址(通常是同一个根域名下的所有页面)
- 不需要保存到 sitejs/
- 不需要写任何配置
- 与 sitejs/ 里的永久脚本共存,不冲突
激活脚本的来源
脚本激活模式可以从多个入口触发:
bookmarklet/ 目录
手动执行 bookmarklet/ 里的某个脚本后,勾选相应选项,它会被激活。
特色服务(default.urls)
某些特色服务背后其实就是 JS 脚本。从特色服务入口执行后也可以被激活。
长按 JS 按钮
长按底部 JS 按钮 → 弹出的菜单里执行任意脚本 → 可以选择"激活此脚本用于同类网址"。
与 sitejs 的关系
| 特性 | sitejs/ 永久脚本 | 激活脚本 |
|---|---|---|
| 保存方式 | 手动放入文件 | 执行一次自动激活 |
| 持久性 | 永久存在(直到删除) | 激活后持续生效 |
| 可编辑 | 直接改文件 | 需要特殊方式取消激活 |
| 适用场景 | 长期固定的定制 | 临时试用后觉得好用就自动留着 |
两者是互补关系——sitejs 写你确定要长期保留的,激活模式让你可以先试用再决定要不要持久化。
如何取消激活
激活的脚本存储在配置目录的某个位置(通常与 sitecache/ 相关)。要取消激活:
- 长按窗口管理按钮
- 取消"执行网址用户脚本"→ 重启(临时禁用全部)
- 或者手动清理 sitecache/ 下的激活记录
实际效果示例
场景 1:视频解析自动激活
- 你从特色服务里选择"视频解析"功能
- 脚本执行成功,把页面中的视频 URL 替换成可直接播放/下载的地址
- 勾选激活后,你访问同类视频网站时自动执行解析脚本
- 下次再也不用手动点"视频解析"了
场景 2:自动展开折叠评论
- 你在某个论坛手动运行一次"展开所有折叠评论"的 bookmarklet
- 觉得好用,勾选激活
- 此后该论坛所有页面的折叠评论都会自动展开
- sitejs 里完全不用写任何东西
场景 3:翻译特色服务
- 你访问一个外文页面,长按链接选择"翻译"特色服务
- 特色服务背后的脚本把页面翻译成中文
- 激活后,所有外文页面访问时自动翻译
与脚本加载顺序的配合
激活的脚本在加载顺序上与 sitejs 同级或稍晚,因此可以叠加在 sitejs 的效果上。如果你既写了 sitejs 脚本,又从特色服务激活了脚本,两者会一起执行。
下一章
脚本扩展体系到此为止。接下来看: