Перейти до основного вмісту

Блок метаданих

Вміст усередині ==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/matchhttp://scriptcat.org/doc/matchhttp://scriptcat.org/doc/runAt
*://*/param?*https://scriptcat.org/param | http://scriptcat.org/param?search=tampermonkeyhttps://scriptcat.org/test/param
*://*/prefix*suffixhttp://scriptcat.org/prefix/suffix | http://scriptcat.org/prefix/mid/suffix | http://scriptcat.org/prefixsuffixhttp://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=tampermonkeyhttps://doc.scriptcat.org/
http*://scriptcat.org/doc/*https://scriptcat.org/doc | http://scriptcat.org/doc/matchhttp://scriptcat.org/param?search=tampermonkey
http*://scriptcat.tld/doc/*https://scriptcat.cn/doc | http://scriptcat.net.cn/doc/matchhttp://google.com/param?search=tampermonkey
http*://*.scriptcat.org/doc/*https://scriptcat.cn/doc | http://www.scriptcat.net.cn/doc/matchhttp://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-файл; підтримує перевірку цілісності ресурсу

noframes​

Позначає скрипт як такий, що не запускається всередині <frame>

definition​

Адреса посилання файлу .d.ts, що вмикає підказки автодоповнення в редакторі

antifeature​

Це пов'язано з маркетплейсом скриптів; небажані функції потрібно позначати цим значенням опису, наприклад:

// @antifeature ads This script has ads
// @antifeature referral-link This script modifies or redirects to the author's referral link

Додаткові значення опису​

license​

Ліцензія з відкритим кодом поточного скрипта

updateURL​

Перевірка оновлень вимагає, щоб віддалений скрипт мав тег @version, щоб це працювало.

Посилання, за яким скрипт перевіряє оновлення; якщо не встановлено, за замовчуванням використовується user.js => meta.js посилання, або поточне посилання, якщо user.js немає.

Якщо налаштовано @updateURL, для дії @updateURL також має бути налаштовано @downloadURL.

downloadURL​

Адреса завантаження оновлення скрипта

supportURL​

Сайт підтримки, сторінка звіту про помилки

homepage, homepageURL, website​

Домашня сторінка скрипта

source​

Сторінка вихідного коду скрипта

icon, iconURL, defaulticon​

Іконка скрипта

icon64, icon64URL​

Іконка скрипта розміром 64x64

Інформація про авторські права скрипта

tag​

Теги скрипта, розділені комами або пробілами

compatible​

Інформація про сумісність, яка показується на GreasyFork

scriptUrl​

URL користувацького скрипта, на який посилається скрипт підписки

unwrap​

Дозволяє користувацькому скрипту обійти обгортку пісочниці та бути впровадженим і виконаним безпосередньо в рідній глобальній області сторінки. Скрипт може безпосередньо отримувати доступ і змінювати справжні глобальні змінні сторінки, але не зможе використовувати привілейовані API користувацьких скриптів, такі як GM.*. Зазвичай використовується в сценаріях, що вимагають глибокої взаємодії з рідними скриптами сторінки, або під час міграції існуючого звичайного скрипта сторінки.

cloudCat​

Позначає скрипт як експортований у пакет хмарного скрипта CloudCat (лише SC)

cloudServer​

Хмарний сервіс CloudCat, який використовує скрипт

exportValue​

Значення зберігання скрипта для експорту під час експорту як хмарного скрипта

exportCookie​

Cookie для експорту під час експорту як хмарного скрипта

Примітки​

Перевірка цілісності ресурсу​

  • Використовуйте md5, sha1, sha256, sha384 або sha512 для перевірки ресурсів на підробку. Кілька методів перевірки можна розділити ; або ,.
  • Відповідно до рекомендацій W3C, md5 і sha1 не рекомендуються; натомість використовуйте sha384 або сильніший алгоритм хешування.

Наприклад:

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