Блок метаданих
Вміст усередині ==UserScript== описує дозволи, необхідні скрипту, інформацію про скрипт тощо. Він розташо ваний на самому початку скрипта.
// ==UserScript==
// @name New Userscript
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @description try to take over the world!
// @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 Symbols та emoji.
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) unsafeWindow вказує лише на власне поточне window середовища та не може отримати доступ до window сторінки.
ScriptCat не підтримує автоматичну перевірку обмежень CSP для вирішення, чи впроваджувати як content чи page (тобто @inject-into auto від Tampermonkey).
Вказує, куди впроваджується скрипт, підтримуючи page і content, за замовчуванням page.
page: скрипт впроваджується в середовище сторінки та може використовуватиunsafeWindowдля доступу доwindowіDOMсторінкиcontent: скрипт впроваджується в середовище скрипта вмісту, не може безпосередньо отримати доступ до об'єктаwindowсторінки, але може отримати доступ доDOMсторінки та не підлягаєCSP
storageName 🧪
Простір зберігання для Value; дані під тим самим storageName можна спільно використовувати та передавати між скриптами. Це специфічно для ScriptCat.
background
Позначає цей скрипт як фоновий, який має працювати у фоновому середовищі. Деталі дивіться в Фоновий скрипт.
crontab
Позначає скрипт як запланований, що вимагає значення cron-виразу. Може існувати лише один cron-вираз, і він запускається за цим розкладом у фоновому середовищі. Деталі дивіться в Запланований скрипт.
match
Лише URL-адреси, які збігаються з match, запускатимуть скрипт, відповідно до шаблонів зіставлення. У 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 |
*://*/prefix*suffix | http://scriptcat.org/prefix/suffix | http://scriptcat.org/prefix/mid/suffix | http://scriptcat.org/prefixsuffix | http://scriptcat.org/prefix/suffix/end |
http*://scriptcat.org/* | https://scriptcat.org/ | https://scriptcat.org/doc | http://scriptcat.org/doc/match | http://scriptcat.org/param?search=tampermonkey | https://doc.scriptcat.org/ |
http*://scriptcat.org/doc/* | https://scriptcat.org/doc | http://scriptcat.org/doc/match | http://scriptcat.org/param?search=tampermonkey |
http*://scriptcat.tld/doc/* | https://scriptcat.cn/doc | http://scriptcat.net.cn/doc/match | http://google.com/param?search=tampermonkey |
http*://*.scriptcat.org/doc/* | https://scriptcat.cn/doc | http://www.scriptcat.net.cn/doc/match | http://google.com/param?search=tampermonkey |
include
Підтримує \* для нечіткого зіставлення, дозволяючи нестандартні URL
exclude
URL, які не повинні збігатися; використовує той самий синтаксис виразів, що й include
grant
Запитує дозвіл API — API можна викликати лише після запиту. Дивіться список дозволів у: Документація API та Документація CAT API.
Два особливі значення:
- none: скрипт не запускається в середовищі пісочниці, а безпосередньо в середовищі сторінки. У цьому середовищі жодні GM API недоступні, але можна безпосередньо отримати доступ до об'єкта
windowсторінки. - unsafeWindow: у середовищі пісочниці, якщо потрібно отримати доступ до об'єкта
windowсторінки, використовуйтеunsafeWindow. (Tampermonkey не вимагає оголошення цього — воно зберігається лише для сумісності, що, звісно, не дуже чисто.)
connect
Запитує дозвіл доступу до сайту; дивіться GM_cookie і GM_xmlhttpRequest. GM_download у режимі native також поважає @connect (неоголошені хости запускають запит на підтвердження, на відміну від Tampermonkey)
resource
Включає файл ресурсу. Після оголошення @resource ви можете використовувати GM_getResourceText/GM_getResourceURL для отримання інформації.
// @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
// Додавання перевірки цілісності ресурсу
// @resource icon https://bbs.tampermonkey.net.cn/favicon.ico#md5-xxx,sha256-xxx
require
Включає зовнішній JS-файл; підтримує перевірку цілісності ресурсу
require-css
Включає зовнішній CSS-файл; підтримує перевірку цілісності ресурсу