web-dev-qa-db-fra.com

À quoi sert l'espace de noms Greasemonkey?

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?

58
Nope

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.

56
Joachim Sauer

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

14
Athena

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.

Source: Plongez dans Greasemonkey - Métadonnées

9
Tamara Wijsman

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.

1
XXN