把一个用户脚本从 Tampermonkey 迁移到一条 JustZix 规则
你有一个想搬到 JustZix 的 Tampermonkey 用户脚本。大部分代码原样重新粘贴即可 —— 但有些东西工作方式不同。本指南一步步带你走。
什么原样重新粘贴即可
操作 DOM 的普通 JavaScript —— querySelector、addEventListener、fetch、MutationObserver —— 行为完全相同。一个典型用户脚本的核心放进一条规则的 JavaScript 标签页就能工作。
元数据头部 —— 砍掉它,搬进 UI
// ==UserScript== 块不是代码 —— 它是配置。在 JustZix 里它的对应物是界面:
| 在用户脚本里 | 在 JustZix 里 |
|---|---|
@match / @include | 规则的 URL 模式 |
@name | 规则的名字 |
@run-at | 规则在页面加载后执行 |
@grant | 不需要 —— 见下文 |
GM_* 函数 —— 缺什么、用什么取代
GM_addStyle—— 不需要:用规则的 CSS 标签页,而不是从 JS 注入样式。GM_setValue/GM_getValue—— 如果数据能和页面一起存活,就用页面的localStorage取代。GM_xmlhttpRequest—— JustZix 没有绕过 CORS 的对应物;一个普通的fetch在页面的 CSP 内有效。unsafeWindow—— 不需要:规则的代码反正在页面上下文里运行,你直接访问window。
你换来什么
迁移不只是重写。在 JustZix 里你得到一个层级(文件夹/分组/规则)、一栏按需的动作按钮、页内开发窗口,以及跨设备的规则同步 —— 这些是用户脚本管理器没有的东西。
坑
- 一个通过
@require加载外部库的用户脚本 —— 把它的代码搬进规则,或者在代码本身里加载库(在 CSP 内)。 - 一个依赖很早启动的脚本(
@run-at document-start)—— JustZix 规则启动得稍晚;很少成问题,但记在心里。
另见
- JustZix vs Tampermonkey —— 工具理念的对比
- URL 模式 —— @match 的对应物
- 文件夹层级 —— 用户脚本没有的一种组织
安装 JustZix —— 把你的用户脚本搬到一个会随你成长的东西上。
为这篇文章评分
暂无评分 — 成为第一个。