元資料區塊
==UserScript== 內的內容描述腳本所需的權限、腳本相關資訊等。它位於腳本的最開始。
// ==UserScript==
// @name 新的使用者腳本
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @description 嘗試征服世界!
// @author You
// @crontab * * once * *
// ==/UserScript==
主要值
name
腳本名稱
namespace
腳本命名空間。name + namespace 決定腳本的唯一性。
version
腳本版本。建議遵循語意化版本控制,以便偵測到版本變更時提示使用者更新。
description
腳本的詳細描述
author
腳本作者
run-at
腳本何時執行
| 值 | 執行時機 | 支援版本 |
|---|---|---|
| document-start | 在前端 URL 匹配時立即將腳本注入頁面 | v0.3.0 |
| document-end | 在 DOM 載入完成後注入腳本;頁面腳本和圖片可能仍在載入中 | v0.3.0 |
| document-idle | 在所有內容載入完成後注入腳本 | v0.3.0 |
| document-body | 只有在頁面有 body 元素時才注入腳本 | v0.6.2 |
| document-menu | 右鍵時顯示選單;以腳本名稱作為選單名稱執行腳本 | v0.3.4-v0.9.4 (🔥 已移除) |
選單圖示可參考 Unicode 符號 和 表情符號。
run-in
指定腳本注入的環境:@run-in normal-tabs 用於一般分頁,@run-in incognito-tabs 用於無痕分頁。
early-start (v1.1.0+)
當 run-at 為 document-start 時,腳本會盡早執行,但無法保證比頁面更快載入。
定義 @run-at document-start 後,可以添加 @early-start 讓腳本比頁面更快載入:範例
inject-into
在 content-script 環境(content)中,unsafeWindow 只指向該環境本身的目前 window,無法存取頁面的 window。
ScriptCat 不支援自動檢查 CSP 限制來決定以 content 或 page 方式注入(即 Tampermonkey 的 @inject-into auto)。
指定腳本注入的位置,支援 page 和 content,預設為 page。
page:腳本注入到頁面環境,可使用unsafeWindow存取頁面的window和DOMcontent:腳本注入到 content-script 環境,無法直接存取頁面的window物件,但可存取頁面DOM,不受CSP限制
storageName 🧪
Value 的儲存空間;相同 storageName 下的資料可在腳本間共享和通訊。ScriptCat 特有功能。
background
將此腳本標記為背景腳本,需要在背景環境中執行。詳見背景腳本。
crontab
將腳本標記為排程腳本,需要 cron 表達式值。只能有一個 cron 表達式,並在背景環境中按該排程執行。詳見排程腳本。
match
只有與 match 匹配的 URL 才會執行腳本,遵循匹配模式。在 match 中,* 是萬用字元,tld 匹配頂級網域,以 *. 開頭的網域也會匹配 xxx.com:
| 值 | 正確範例 | 錯誤範例 |
|---|---|---|
http://scriptcat.org/doc/match | http://scriptcat.org/doc/match | http://scriptcat.org/doc/runAt |
*://*/param?* | https://scriptcat.org/param | http://scriptcat.org/param?search=tampermonkey | https://scriptcat.org/test/param |
http*://scriptcat.org/* | https://scriptcat.org/ | https://scriptcat.org/doc | https://doc.scriptcat.org/ |
include
支援 * 進行模糊匹配,允許非標準 URL