Domanda A cosa serve lo spazio dei nomi di Greasemonkey?


Sto imparando come usare Greasemonkey e mi stavo chiedendo cosa @namespace l'ID metadati è per.

Deve essere un indirizzo web? O può essere una cartella / directory sul mio computer?

Ha anche bisogno di essere compilato?


47
2017-12-22 16:07


origine


risposte:


È usato per evitare la denominazione delle collisioni. Se hai chiamato il tuo script foobar e qualcun altro ha fatto altrettanto, quindi i repository centrali avrebbero avuto difficoltà a conoscerli a parte.

Pertanto, dovresti fornire un URL che controlli (ovvero lo possiedi o puoi amministrarlo) che in pratica significa "tutto con quell'URL è da me". Ora quei repository centrali possono distinguere tra foobar a partire dal http://somesite.com/ e foobar a partire dal http://anothersite.com.

Non è necessario per le operazioni di base, ma è fortemente consigliato se si desidera condividere i propri script.


46
2017-12-22 16:10



Un posto dove puoi vedere l'effetto pratico dei namespace è nell'archiviazione delle preferenze. Nampsaces viene utilizzato per identificare in modo univoco gli script per qualsiasi preferenza memorizzata specifica dello script.

Ad esempio, se hai uno script come questo:

// ==UserScript==
// @name            Script Name
// @namespace       http://example.com
// @include         *
// ==/UserScript==


GM_setValue("key", "value");

Questo sarebbe memorizzato nelle tue preferenze (accessibile in prefs.js e about: config) in questo modo:

greasemonkey.scriptvals.http://example.com/Script Name.key

Nota il formato: greasemonkey.scriptvals . namespace . scriptname . key/variablename


13
2017-12-22 16:28



In generale, uno spazio dei nomi è un contenitore astratto che fornisce il contesto per gli elementi (nomi, termini tecnici o parole) che contiene e consente la disambiguazione di elementi con lo stesso nome (che risiedono in diversi spazi dei nomi).

Fonte: Namespace - Wikipedia

E più specifico:

Questo è un URL e Greasemonkey lo usa per distinguere gli script utente che hanno lo stesso nome ma sono scritti da autori diversi. Se si dispone di un nome di dominio, è possibile utilizzarlo (o una sottodirectory) come spazio dei nomi. Altrimenti puoi usare un tag: URI.

@namespace è facoltativo. Se presente, può apparire solo una volta. Se non presente, per impostazione predefinita il dominio da cui l'utente ha scaricato lo script utente.

Fonte: Dive Into Greasemonkey - Metadata


9
2017-12-22 16:10



Lo spazio dei nomi può essere un URL, ma non solo. Puoi usare come namespace alcune parole come nome utente o vero nome.


1
2017-09-03 21:56