Skip to content

文档 ​

扩展支持 Chrome 120 及更高版本和 Firefox 136 及更高版本。

允许用户脚本 ​

浏览器只有在获得单独的权限后,才会在网页上运行扩展的 JavaScript。没有这项权限时,规则的样式仍然生效,但规则的 JavaScript 不会运行;此时弹出窗口和设置页面会提示如何开启。

  • Chrome 138 及更高版本: 打开扩展详情(chrome://extensions → User JavaScript and CSS → “详情”),开启“允许用户脚本”。不需要开发者模式。
  • Chrome 120–137: 在 chrome://extensions 右上角开启“开发者模式”。这是 Google 的要求,适用于所有使用用户脚本的扩展。
  • Firefox: 在弹出窗口中点击“授予用户脚本权限”,然后在浏览器对话框中确认。Firefox 还可能不给扩展访问网站的权限:这时弹出窗口会显示“允许访问网站”,设置页面顶部的横幅中会显示“允许”。

规则 ​

在本扩展中,“规则”是指在与其 URL 模式匹配的网页上运行的 JavaScript 和/或 CSS 代码。

URL 模式 ​

  • 模式的格式为 <scheme>://<host>/<path>:https://site.com/*;
  • 多个模式之间用逗号分隔:https://one.com/*, https://two.com/*;
  • 排除项以 ! 标记:!https://site.com/admin/*。

扩展会把每个模式转换为浏览器的匹配模式格式,弹出窗口和图标徽标显示的正是浏览器实际运行规则的位置。

带协议的模式基本按原样使用:

写法规则运行于
https://site.com/*site.com 和 www.site.com,不包括其他子域名
https://*.site.com/*site.com 及其所有子域名
https://site.com/pathsite.com 和 www.site.com 上以 /path 开头的页面
https://site.com整个 site.com 和 www.site.com
http*://site.com通过 http 和 https 访问的 site.com 和 www.site.com
http://localhost:*/*任意端口上的 localhost

不带协议的模式表示该网站及其子域名,http 和 https 均适用:

写法规则运行于
site.com, *site.com*, *.site.comsite.com 及其所有子域名
www.site.comwww.site.com 和 site.com
пример.рфпример.рф 及其子域名
site.com/pathsite.com 及其子域名上以 /path 开头的页面
localhost:3000端口 3000 上的 localhost
/admin任意网站上路径中包含 /admin 的页面
*任意网站

带协议的排除项严格按原样使用:https://site.com/*, !https://www.site.com/* 会在 site.com 上运行,但不会在 www.site.com 上运行。不带协议的排除项遵循上表:!site.com/admin 会排除 site.com 及其子域名上的 /admin。

Firefox 中的端口。 Firefox 的模式不能指定端口,因此端口会被去掉:localhost:3000 会在任意端口的 localhost 上运行,带端口的排除项会排除该主机的所有端口。针对单个端口上任意网站的模式(*://*:8080/*)会变成针对所有网站的模式,因此在 Firefox 中会标红。

标红的是浏览器不接受的模式:主机名中间带 *(https://shop*.site.com/*、https://site.*/*),或者扩展无法在其上运行的协议(chrome-extension://、ws://)。这样的模式会被跳过,规则的其他模式照常生效。如果某个排除项被拒绝,规则在修正之前不会在任何地方运行,否则它会在您排除的页面上运行。

JavaScript 属性 ​

JavaScript 面板标题栏中的按钮:

  • 隔离环境:脚本能访问页面 DOM,但无法访问页面的变量和函数。
  • 所有框架:脚本也会在地址与规则匹配的框架中运行。每个框架都会单独与规则的模式进行匹配。
  • 加载开始时运行:脚本在 DOM 构建之前运行;不开启时在 DOM 构建之后、图片和框架等资源加载之前运行。注意,对这样的脚本不会触发 DOMContentLoaded 事件。

样式属性 ​

样式面板标题栏中的按钮:

  • Sass 预处理器:开启时(默认)样式按 Sass 或 SCSS 编译,语法根据代码中是否含有 {;} 来判断;关闭时样式按原样应用。
  • 为所有属性自动添加 !important:为编译后样式的每个属性添加 !important。
  • 应用于嵌套框架:样式也会应用到页面内的框架中。默认开启。
  • 应用于 shadow DOM:样式也会应用到带有开放 shadow DOM 的 Web 组件内部。默认关闭。

样式会立即在已打开的标签页中生效,无需重新加载页面:编辑样式、启用规则或修改其地址时都是如此。

共享规则 ​

“共享规则”可以在不同规则之间建立依赖关系,并明确控制它们的加载顺序。任何规则都可以在规则菜单中标记为“共享规则”,这样它就会出现在其他规则的模块列表中。被引入的规则只取其 JS 和 CSS 内容,规则的其他属性会被忽略。

历史版本 ​

扩展会保存规则在最近 10 次保存前的代码:见规则菜单中的“历史版本”。选中的版本会回到编辑器中,保存后才会生效。版本只保存在当前浏览器中:不会被导出,也不会保存到云端。

其他特性 ​

  • 当规则是共享规则并被其他规则引入时,其“规则已启用”标记会被忽略;
  • “保存到云端”标记仅表示该规则包含在云端备份中;
  • 规则菜单中的“设为新规则模板”:新建的规则会以该规则的代码和属性为起点。

模块 ​

可以为规则附加外部 JS 和 CSS 模块,它们会在规则之前运行。支持 https://... 链接,资源类型由扩展自动识别。

模块内容会被下载并保存在扩展的存储中。更新方式有两种:在模块编辑窗口中点击“重新下载”,或者按计划自动更新,即“库更新”设置:手动、每天或每周。如果下载失败,会保留模块的上一个版本。

存储 ​

本地存储 ​

  • “下载 JSON”会把您的规则、库和设置保存到文件中。
  • “上传 JSON”会打开文件中的规则和库列表。“添加所选项”会把勾选的项目添加到您现有的规则和库中:已有的规则会被替换,其旧代码保留在历史版本中。“全部替换”会用文件中的规则和库替换您现有的规则和库。

浏览器同步 ​

如果浏览器开启了同步,可以把备份上传到您的 Google 或 Firefox 账号的云端。这种方式无需额外登录或设置:storage.sync 是扩展的标准同步存储类型。备份需要手动上传和下载。

其容量限制为 100 KB,因此上传前会从副本中移除外部模块的内容和所有生成的数据,再对结果进行压缩。如果空间仍然不够,请对不需要备份的规则关闭“保存到云端”。

智能体(MCP) ​

AI 智能体(Claude Code、Codex、Gemini CLI、Cursor、VS Code、Claude Desktop 等)可以通过本地 MCP 服务器 user-js-css-mcp 读取和修改您的规则。该功能为实验性功能。

  1. 打开设置页面的 MCP 部分,开启“允许 MCP 连接”。
  2. 选择您的客户端。该部分会给出现成的命令、一键安装链接或配置代码块,连接密钥已经填好。
  3. 重启客户端:客户端会自行启动服务器,该部分会显示客户端已连接。

服务器运行在您的计算机上(127.0.0.1),需要 Node.js 18+ 或 Bun 1.2+。扩展和服务器在处理任何请求之前都会校验连接密钥,因此计算机上的其他程序无法使用它们。点击密钥旁边的“更换”会断开所有使用旧密钥配置的客户端。

智能体可以列出、读取、搜索、创建和修改规则与库,查找在某个页面上运行的规则,查看规则为何不生效,将规则备份到文件并从文件恢复,以及将规则恢复到历史版本。