脚本元数据
脚本元数据是用于描述用户脚本的基本信息和配置的特殊注释块。它们通常位于脚本文件的开头,以特定的格式编写。
基本格式
元数据块必须位于脚本的开头,使用以下格式:
javascript
// ==UserScript==
// @name 脚本名称
// @version 1.0.0
// @description 脚本描述
// ==/UserScript==
常用字段
@name
定义脚本的名称。这是必需的字段。
javascript
// @name 我的脚本
@version
定义脚本的版本号。建议使用语义化版本号(如:1.0.0)。
javascript
// @version 1.0.0
@description
描述脚本的功能。
javascript
// @description 脚本描述
@icon
定义脚本的图标。支持外部图片链接和base64编码格式。
javascript
// 使用外部图片链接
// @icon https://example.com/icon.png
// 使用base64编码
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
建议:
- 图标尺寸建议使用32x32或48x48像素
- 支持PNG、JPEG等常见图片格式
- 使用base64时注意控制图片大小,避免元数据块过大
@author
指定脚本作者。
javascript
// @author 作者名称
@match
定义脚本在哪些网页上运行。支持通配符。
javascript
// @match *://*.example.com/*
// @match https://example.com/*
@include
类似@match,但使用正则表达式匹配URL。
javascript
// @include /^https?://example\.com/.*/
@exclude
指定不运行脚本的网页。
javascript
// @exclude *://*.example.com/login
@require
声明脚本依赖的外部库。
javascript
// @require https://code.jquery.com/jquery-3.6.0.min.js
@grant
声明脚本所需的API权限。
javascript
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_xmlhttpRequest
@run-at
指定脚本的运行时机。
javascript
// @run-at document-start
// @run-at document-end
// @run-at document-idle
特殊说明
- 所有元数据字段都必须以
// @
开头 - 部分字段可以多次使用,如
@match
、@grant
不支持的字段
以下字段在其他脚本管理器中可能支持,但在火猿扩展中暂不支持:
@inject-into
在其他脚本管理器中用于指定脚本注入的上下文环境(page、content、auto)。火猿扩展目前仅支持页面上下文注入。
@downloadURL
用于指定脚本更新的下载地址。火猿扩展使用内置的更新机制,不支持自定义下载地址。
@homepageURL
用于指定脚本的主页地址。火猿扩展暂不支持此功能。
@unwrap
用于控制是否将脚本代码包装在匿名函数中。火猿扩展始终使用安全的包装机制,不支持禁用。
@top-level-await
用于支持在脚本顶层使用await。出于兼容性和安全性考虑,火猿扩展暂不支持此特性。
@supportURL
用于指定脚本的支持/反馈页面地址。火猿扩展使用统一的反馈渠道,暂不支持自定义支持地址。
示例
这是一个完整的元数据块示例:
javascript
// ==UserScript==
// @name 示例脚本
// @version 1.0.0
// @description 这是一个示例脚本
// @author 作者名称
// @match *://*.example.com/*
// @grant GM_getValue
// @grant GM_setValue
// @run-at document-end
// ==/UserScript==
与其他脚本管理器的兼容性
火猿扩展的元数据格式与Tampermonkey、Violentmonkey等主流脚本管理器保持兼容,但有以下特殊处理:
- 部分高级API可能需要额外的权限声明
- 某些特定于其他脚本管理器的字段可能会被忽略
- 建议使用标准字段以确保最大兼容性
TIP
在编写脚本时,建议参考Violentmonkey的元数据文档以确保最佳兼容性。