用户脚本元数据头总览:UserScript 头部常用字段速查
每个用户脚本开头都有一段 // ==UserScript== 到 // ==/UserScript== 的注释块——元数据头。Tampermonkey 靠它决定脚本的显示名、运行范围、权限申请。官方 Documentation 页对每个字段有独立条目,这里按「装脚本的人最该看什么」组织。
脚本身份字段
| 字段 | 作用 |
|---|---|
@name | 脚本显示名,管理面板与安装页用它 |
@namespace | 命名空间,配合 name 区分同名脚本,常填作者主页 |
@version | 版本号,自动更新比对的基础 |
@description | 一句话描述 |
@author | 作者 |
@homepage / @supportURL | 主页与反馈地址 |
@icon | 脚本图标 |
@tag | 标签,配合本地标签系统过滤 |
作用范围字段
@match/@include:在哪些页面运行——两种写法差异大,专门一页讲,见URL 匹配规则;@exclude:从运行范围里剔除页面;@noframes:只跑主页面、不进 iframe——「页面行为被重复触发」时检查它;@run-at:注入时机(页面加载的哪个阶段动手),见注入时机。
权限与外部依赖字段
@grant:申请哪些 GM 函数与特权对象,none表示关闭沙箱特权,见grant 权限;@connect:声明GM_xmlhttpRequest允许请求的域名,漏声明会触发确认弹窗,见跨域请求函数;@require:加载外部 JS 库(如 jQuery),可带哈希做完整性校验;@resource:预载图片/CSS 等资源,脚本内用GM_getResourceURL取用。
更新控制字段
@updateURL:询问新版本的地址(必须配合@version才有效);@downloadURL:实际下载新版的地址,写none则永不更新。
一个真实的头部示例
// ==UserScript==
// @name 示例:自动展开折叠区
// @namespace https://example.org/author
// @version 1.2.0
// @description 在示例站点自动展开所有折叠内容
// @match https://www.example.com/*
// @grant none
// @noframes
// @run-at document-end
// ==/UserScript==
看头部挑脚本
装第三方脚本前,头部是「说明书」:@match 范围是否合理、@grant 申请是否克制、@require 引了哪些库——逐条对上脚本安全判断的清单再点安装。