J'apprends à utiliser Greasemonkey et je me demandais ce que le @namespace
l'ID de métadonnées est pour.
Doit-il s'agir d'une adresse Web? Ou peut-il s'agir d'un dossier/répertoire sur mon ordinateur?
Doit-il même être rempli?
Un espace de noms est utilisé pour éviter les collisions de noms. Si vous appeliez votre script foobar
et que quelqu'un d'autre le faisait aussi, les référentiels centraux auraient du mal à les différencier.
Par conséquent, vous devez fournir une URL que vous contrôlez (c'est-à-dire que vous en êtes le propriétaire ou que vous pouvez l'administrer), ce qui signifie essentiellement que "tout ce qui est avec cette URL est de moi". Désormais, ces référentiels centraux peuvent faire la distinction entre foobar
et http://somesite.com/
et foobar
de http://anothersite.com
.
Ce n'est pas nécessaire pour le fonctionnement de base, mais fortement recommandé si vous souhaitez partager vos scripts.
Garde en tête que mailto:[email protected]
est également une URL valide et peut être une option possible lorsque vous ne possédez pas ou ne contrôlez pas votre propre domaine.
Un endroit où vous pouvez voir l'effet pratique des espaces de noms est le stockage des préférences. Les Nampsaces sont utilisés pour identifier de manière unique les scripts pour toutes les préférences stockées spécifiques aux scripts.
Par exemple, si vous avez un script comme celui-ci:
// ==UserScript==
// @name Script Name
// @namespace http://example.com
// @include *
// ==/UserScript==
GM_setValue("key", "value");
Cela serait stocké dans vos préférences (accessibles dans prefs.js et about: config) comme ceci:
greasemonkey.scriptvals . http://example.com/Script Name.key
Notez le format: greasemonkey.scriptvals . namespace
. scriptname
. key/variablename
En général, un espace de noms est un conteneur abstrait fournissant un contexte pour les éléments (noms, ou termes techniques ou mots) qu'il contient et permettant la désambiguïsation des éléments ayant le même nom (résidant dans des espaces de noms différents).
Source: Espace de noms - Wikipedia
Et plus précis:
Il s'agit d'une URL et Greasemonkey l'utilise pour distinguer les scripts utilisateur portant le même nom mais écrits par des auteurs différents. Si vous avez un nom de domaine, vous pouvez l'utiliser (ou un sous-répertoire) comme espace de noms. Sinon, vous pouvez utiliser une balise: URI.
@namespace est facultatif. S'il est présent, il ne peut apparaître qu'une seule fois. S'il n'est pas présent, il correspond par défaut au domaine à partir duquel l'utilisateur a téléchargé le script utilisateur.
L'espace de noms peut être une URL, mais pas seulement. Vous pouvez utiliser comme espace de noms certains mots comme votre nom d'utilisateur ou votre vrai nom.