Documentation des métadonnées
Le contenu entre ==UserScript==, situé tout au début du script, décrit les permissions nécessaires au script ainsi que ses informations générales.
// ==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==
Valeurs principalesâ
nameâ
Nom du script
namespaceâ
Espace de nommage du script ; la combinaison name + namespace garantit l'unicité du script
versionâ
Version du script, il est recommandé de suivre les règles de versionnage sémantique. Un changement de version détecté invite l'utilisateur à effectuer une mise à jour.
descriptionâ
Description détaillée du script
authorâ
Auteur du script
run-atâ
Moment d'exécution du script
| Valeur | Comportement | Support |
|---|---|---|
| document-start | Injecte le script dans la page le plus tôt possible après correspondance de l'URL | v0.3.0 |
| document-end | Injecte le script une fois le DOM chargé ; scripts et images de la page peuvent encore être en cours de chargement | v0.3.0 |
| document-idle | Injecte le script une fois que tout le contenu est chargé | v0.3.0 |
| document-body | Le script n'est injecté que lorsque la page possède un élément body | v0.6.2 |
| document-menu | Affiche un menu au clic droit sur la page ; le script s'exécute au clic, avec son nom comme libellé de menu | v0.3.4-v0.9.4(ð¥ supprimé) |
Pour les icônes de menu, voir Unicode Symbols et emoji
run-inâ
Spécifie l'environnement d'injection du script : @run-in normal-tabs onglets normaux, @run-in incognito-tabs onglets de navigation privée
early-start (v1.1.0+)â
Quand run-at vaut document-start, le script s'exécute le plus tôt possible, mais rien ne garantit qu'il s'exécutera avant le chargement de la page.
Une fois @run-at document-start défini, ajoutez @early-start pour que le script se charge avant la page : exemple
inject-intoâ
Dans l'environnement de script de contenu (content), unsafeWindow ne pointe que vers le window actuel de cet environnement, sans pouvoir accéder au window de la page.
ScriptCat ne prend pas en charge la détection automatique des restrictions CSP pour choisir entre injection content ou page (c'est-à -dire l'équivalent du @inject-into auto de Violentmonkey).
Spécifie où le script est injecté, page ou content, page par défaut
page: le script est injecté dans l'environnement de la page ;unsafeWindowpermet d'accéder auwindowet auDOMde la pagecontent: le script est injecté dans l'environnement de script de contenu ; pas d'accès direct auwindowde la page, mais accès auDOMde la page, sans restrictionCSP
storageName ð§ªâ
Espace de stockage des Value ; les données partageant le même storageName peuvent être partagées et communiquer entre elles. Ceci est spécifique à ScriptCat.
backgroundâ
Indique que ce script est un script en arrière-plan, devant s'exécuter dans l'environnement d'arrière-plan â voir Scripts en arrière-plan
crontabâ
Indique que le script est un script planifié, nécessitant une expression cron (une seule autorisée), exécuté périodiquement dans l'environnement d'arrière-plan â voir Scripts planifiés
matchâ
Seules les URL correspondant à match déclenchent l'exécution du script, en suivant les Match patterns ; * sert de joker dans match, tld correspond au domaine de premier niveau, et un domaine commençant par *. correspond aussi à xxx.com :
| Valeur | Cas corrects | Cas incorrects |
|---|---|---|
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=æ²¹ç´ | 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=æ²¹ç´ | https://doc.scriptcat.org/ |
http*://scriptcat.org/doc/* | https://scriptcat.org/doc | http://scriptcat.org/doc/match | http://scriptcat.org/param?search=æ²¹ç´ |
http*://scriptcat.tld/doc/* | https://scriptcat.cn/doc | http://scriptcat.net.cn/doc/match | http://google.com/param?search=æ²¹ç´ |
http*://*.scriptcat.org/doc/* | https://scriptcat.cn/doc | http://www.scriptcat.net.cn/doc/match | http://google.com/param?search=æ²¹ç´ |
includeâ
* permet une correspondance approximative, autorise les URL non standard
excludeâ
Exclut des URL de la correspondance ; syntaxe identique à include
grantâ
Demande une permission API ; l'API ne peut être appelée qu'une fois demandée. Liste des API : Documentation de l'API et Documentation de l'API CAT.
Deux valeurs spéciales :
- none : indique que le script ne s'exécute pas dans le bac à sable, mais directement dans l'environnement de la page ; aucune API GM n'est alors utilisable, mais le
windowde la page est directement accessible. - unsafeWindow : pour accéder au
windowde la page depuis le bac à sable, utilisezunsafeWindow. (TM ne nécessite pas cette déclaration ; conservée pour compatibilité, bien que peu élégante.)
connectâ
Obtient l'autorisation d'accès à un site â voir GM_cookie et GM_xmlhttpRequest ; le mode native de GM_download respecte également @connect (un domaine non déclaré déclenche une demande de confirmation, contrairement à TM)
resourceâ
Importe un fichier de ressource ; une fois @resource déclaré, utilisez GM_getResourceText/GM_getResourceURL pour récupérer son contenu
// @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
// Ajout d'une vérification d'intégrité de ressource
// @resource icon https://bbs.tampermonkey.net.cn/favicon.ico#md5-xxx,sha256-xxx
requireâ
Importe un fichier JS externe, avec possibilité de vérification d'intégrité
require-cssâ
Importe un fichier CSS externe, avec possibilité de vérification d'intégrité
noframesâ
Indique que le script ne s'exécute pas dans une <frame>
definitionâ
URL de référence vers un fichier .d.ts, permettant l'autocomplétion dans l'éditeur
antifeatureâ
Lié au site de scripts ; à utiliser pour signaler des fonctionnalités indésirables, par exemple :
// @antifeature ads Le script contient des publicités
// @antifeature referral-link Le script modifie ou redirige vers le lien d'affiliation de l'auteur
Valeurs de description supplémentairesâ
licenseâ
Licence open source du script actuel
updateURLâ
La vérification de mise à jour ne fonctionne que si le script distant possède un tag @version.
Lien de vérification de mise à jour du script ; par défaut, non défini équivaut au lien user.js => meta.js ; en l'absence de user.js, la valeur par défaut est le lien actuel.
Si @updateURL est configuré, @downloadURL doit également l'être pour que @updateURL prenne effet.
downloadURLâ
Adresse de téléchargement pour la mise à jour du script
supportURLâ
Site de support, page de signalement de bugs
homepage, homepageURL, websiteâ
Page d'accueil du script
sourceâ
Page du code source du script
icon, iconURL, defaulticonâ
Icône du script
icon64ï¼ icon64URLâ
Icône du script en 64x64
copyrightâ
Informations de copyright du script
tagâ
Tags du script, séparés par des virgules ou des espaces
compatibleâ
Informations de compatibilité affichées sur GreasyFork
scriptUrlâ
URL du script utilisateur référencé par un script d'abonnement
unwrapâ
Permet au script utilisateur de contourner l'encapsulation du bac à sable pour s'injecter et s'exécuter directement dans la portée globale native de la page. Le script peut alors accéder directement aux vraies variables globales de la page et les modifier, mais ne peut pas utiliser les API privilégiées de type GM.*. Souvent utilisé lorsqu'une interaction poussée avec les scripts natifs de la page est nécessaire, ou lors d'une migration depuis un script de page ordinaire.
cloudCatâ
Marque le script comme exportable en tant que paquet de script cloud CloudCat (pris en charge par SC uniquement)
cloudServerâ
Service cloud CloudCat utilisé par le script
exportValueâ
Valeurs de stockage du script à exporter en même temps lors de l'export en script cloud
exportCookieâ
Cookies à exporter en même temps lors de l'export en script cloud
Remarquesâ
Vérification d'intégrité des ressourcesâ
- Utilisez md5, sha1, sha256, sha384 ou sha512 pour vérifier l'intégrité d'une ressource et empêcher toute altération. Plusieurs méthodes de vérification peuvent être séparées par
;ou,. - Selon les recommandations du W3C, md5 et sha1 sont déconseillés ; préférez sha384 ou un algorithme de hachage plus robuste.
Par exemple :
// @require https://cdn.jsdelivr.net/npm/[email protected]/lib/darkmode-js.min.js#md5-d55836f30c097da753179f82fa6f108f,sha256-a476ab8560837a51938aa6e1720c8be87c2862b6221690e9de7ffac113811a90