Chuyển tới nội dung chính

Khối Siêu dữ liệu

Nội dung bên trong ==UserScript== mô tả các quyền mà script cần, thông tin về script, v.v. Nó nằm ở đầu script.

// ==UserScript==
// @name Script Người dùng Mới
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @description cố gắng chinh phục thế giới!
// @author You
// @crontab * * once * *
// ==/UserScript==

Các Giá trị Chính

name

Tên script

namespace

Không gian tên của script. name + namespace xác định tính duy nhất của script.

version

Phiên bản của script. Khuyến nghị tuân theo phiên bản hóa ngữ nghĩa, để khi phát hiện thay đổi phiên bản, người dùng được yêu cầu cập nhật.

description

Mô tả chi tiết về script

author

Tác giả script

run-at

Khi nào script được chạy

Giá trịThời điểm chạyHỗ trợ từ
document-startChèn script vào trang ngay khi URL khớp ở frontendv0.3.0
document-endChèn script sau khi DOM đã tải xong; script và hình ảnh của trang có thể vẫn đang tảiv0.3.0
document-idleChèn script sau khi tất cả nội dung đã tải xongv0.3.0
document-bodyScript chỉ được chèn khi trang có phần tử bodyv0.6.2
document-menuHiển thị menu khi nhấp chuột phải; chạy script sử dụng tên script làm tên menuv0.3.4-v0.9.4 (🔥 đã xóa)

Để biết biểu tượng menu, bạn có thể tham khảo Ký hiệu Unicodeemoji.

run-in

Xác định môi trường mà script được chèn vào: @run-in normal-tabs cho tab thường, @run-in incognito-tabs cho tab ẩn danh.

early-start (v1.1.0+)

Khi run-atdocument-start, script chạy càng sớm càng tốt, nhưng không thể đảm bảo nó tải nhanh hơn trang.

Sau khi định nghĩa @run-at document-start, bạn có thể thêm @early-start để script tải nhanh hơn trang: ví dụ

inject-into

mẹo

Trong môi trường content-script (content), unsafeWindow chỉ trỏ đến window hiện tại của môi trường đó và không thể truy cập window của trang.

ScriptCat không hỗ trợ kiểm tra tự động các hạn chế CSP để quyết định chèn dưới dạng content hay page (tức là @inject-into auto của Tampermonkey).

Xác định nơi script được chèn vào, hỗ trợ pagecontent, mặc định là page.

  • page: script được chèn vào môi trường trang và có thể sử dụng unsafeWindow để truy cập windowDOM của trang
  • content: script được chèn vào môi trường content-script, không thể truy cập trực tiếp đối tượng window của trang, nhưng có thể truy cập DOM của trang và không bị ràng buộc bởi CSP

storageName 🧪

Không gian lưu trữ cho Value; dữ liệu dưới cùng storageName có thể được chia sẻ và giao tiếp giữa các script. Đặc thù của ScriptCat.

background

Đánh dấu script này là script nền, cần chạy trong môi trường nền. Xem Script Nền để biết chi tiết.

crontab

Đánh dấu script là script được lên lịch, yêu cầu giá trị biểu thức cron. Chỉ có thể tồn tại một biểu thức cron và nó chạy theo lịch trình đó trong môi trường nền. Xem Script Được Lên Lịch để biết chi tiết.

match

Chỉ các URL khớp với match mới chạy script, tuân theo Mẫu Khớp. Trong match, * là ký tự đại diện, tld khớp với tên miền cấp cao nhất, và tên miền bắt đầu bằng *. cũng sẽ khớp với xxx.com:

Giá trịVí dụ đúngVí dụ sai
http://scriptcat.org/doc/matchhttp://scriptcat.org/doc/matchhttp://scriptcat.org/doc/runAt
*://*/param?*https://scriptcat.org/param | http://scriptcat.org/param?search=tampermonkeyhttps://scriptcat.org/test/param
http*://scriptcat.org/*https://scriptcat.org/ | https://scriptcat.org/dochttps://doc.scriptcat.org/

include

Hỗ trợ * để khớp mờ, cho phép URL không tiêu chuẩn

exclude

URL không nên khớp; sử dụng cùng cú pháp biểu thức như include

grant

Yêu cầu quyền API — một API chỉ có thể được gọi sau khi đã yêu cầu. Xem danh sách quyền tại: Tài liệu APITài liệu CAT API.

Hai giá trị đặc biệt:

  • none: script không chạy trong môi trường sandbox mà chạy trực tiếp trong môi trường trang. Trong môi trường này, không có API GM nào khả dụng, nhưng đối tượng window của trang có thể được truy cập trực tiếp.
  • unsafeWindow: trong môi trường sandbox, nếu bạn cần truy cập đối tượng window của trang, hãy sử dụng unsafeWindow. (Tampermonkey không yêu cầu khai báo điều này — nó chỉ được giữ lại vì tính tương thích.)

connect

Yêu cầu quyền truy cập vào một trang web; xem GM_cookieGM_xmlhttpRequest. GM_download ở chế độ native cũng nhận biết @connect (host chưa khai báo sẽ kích hoạt lời nhắc xác nhận).

resource

Bao gồm một tệp tài nguyên. Sau khi khai báo @resource, bạn có thể sử dụng GM_getResourceText/GM_getResourceURL để lấy thông tin.

// @resource icon https://bbs.tampermonkey.net.cn/favicon.ico
// @resource html https://bbs.tampermonkey.net.cn/
// @resource xml https://bbs.tampermonkey.net.cn/sitemap.xml
// Thêm kiểm tra toàn vẹn tài nguyên
// @resource icon https://bbs.tampermonkey.net.cn/favicon.ico#md5-xxx,sha256-xxx

require

Bao gồm một tệp JS bên ngoài; hỗ trợ kiểm tra toàn vẹn tài nguyên

require-css

Bao gồm một tệp CSS bên ngoài; hỗ trợ kiểm tra toàn vẹn tài nguyên

noframes

Đánh dấu script không chạy bên trong <frame>

definition

Địa chỉ tham chiếu của tệp .d.ts, kích hoạt gợi ý tự động hoàn thành của trình soạn thảo

antifeature

Điều này liên quan đến thị trường script; các tính năng không mong muốn cần được gắn cờ với giá trị mô tả này:

// @antifeature ads Script này có quảng cáo
// @antifeature referral-link Script này chỉnh sửa hoặc chuyển hướng đến liên kết giới thiệu của tác giả

Các Giá trị Mô tả Bổ sung

license

Giấy phép mã nguồn mở của script hiện tại

updateURL

Kiểm tra cập nhật yêu cầu script từ xa có thẻ @version.

Liên kết mà script sử dụng để kiểm tra cập nhật; nếu không được đặt, mặc định là user.js => meta.js của liên kết, hoặc liên kết hiện tại nếu không có user.js.

Nếu @updateURL được cấu hình, @downloadURL cũng phải được cấu hình để @updateURL hoạt động.

downloadURL

Địa chỉ tải xuống cho bản cập nhật script

supportURL

Trang web hỗ trợ, trang báo lỗi

homepage, homepageURL, website

Trang chủ script

source

Trang mã nguồn script

icon, iconURL, defaulticon

Biểu tượng script

icon64, icon64URL

Biểu tượng script 64x64

Ghi chú

Kiểm tra Toàn vẹn Tài nguyên

  • Sử dụng md5, sha1, sha256, sha384 hoặc sha512 để kiểm tra xem tài nguyên có bị thay đổi không. Nhiều phương pháp kiểm tra có thể phân tách bằng ; hoặc ,.
  • Theo khuyến nghị của W3C, md5 và sha1 không được khuyến nghị; hãy sử dụng sha384 hoặc thuật toán hash mạnh hơn.

Ví dụ:

// @require https://cdn.jsdelivr.net/npm/[email protected]/lib/darkmode-js.min.js#md5-d55836f30c097da753179f82fa6f108f,sha256-a476ab8560837a51938aa6e1720c8be87c2862b6221690e9de7ffac113811a90