Ich lerne, wie man Greasemonkey benutzt, und habe mich gefragt, wozu die @namespace
Metadaten-ID dient.
Muss es eine Webadresse sein? Oder kann es ein Ordner / Verzeichnis auf meinem Computer sein?
Muss es überhaupt ausgefüllt werden?
Antworten:
Ein Namespace wird verwendet, um Namenskollisionen zu vermeiden. Wenn Sie Ihr Skript aufrufen foobar
und dies auch jemand anderes tut, fällt es zentralen Repositorys schwer, sie auseinander zu halten.
Daher sollten Sie eine URL angeben, die Sie steuern (dh Sie besitzen sie oder können sie verwalten), was im Grunde bedeutet, dass "alles mit dieser URL von mir stammt". Jetzt können diese zentralen Repositories zwischen foobar
von http://somesite.com/
und foobar
von unterscheiden http://anothersite.com
.
Dies ist für den Basisbetrieb nicht erforderlich, wird jedoch dringend empfohlen, wenn Sie Ihre Skripte freigeben möchten.
Beachten Sie, dass dies mailto:someone@example.com
auch eine gültige URL ist und eine mögliche Option sein kann, wenn Sie keine eigene Domain besitzen oder kontrollieren.
mailto:
URI, wenn Sie daraus eine URL machen möchten) verwenden.
Ein Ort, an dem Sie den praktischen Effekt von Namespaces sehen können, ist das Speichern von Einstellungen. Nampsaces werden verwendet, um Skripte für skriptspezifische gespeicherte Einstellungen eindeutig zu identifizieren.
Wenn Sie beispielsweise ein Skript wie dieses haben:
// ==UserScript==
// @name Script Name
// @namespace http://example.com
// @include *
// ==/UserScript==
GM_setValue("key", "value");
Das würde in Ihren Einstellungen gespeichert (zugänglich in prefs.js und about: config) wie folgt:
greasemonkey.scriptvals. http://example.com/Script Name.key
Beachten Sie das Format: greasemonkey.scriptvals . namespace
. scriptname
.key/variablename
Im Allgemeinen ist ein Namespace ein abstrakter Container, der den Kontext für die darin enthaltenen Elemente (Namen oder Fachbegriffe oder Wörter) bereitstellt und die Disambiguierung von Elementen mit demselben Namen ermöglicht (die sich in verschiedenen Namespaces befinden).
Quelle: Namespace - Wikipedia
Und genauer:
Dies ist eine URL, die von Greasemonkey verwendet wird, um Benutzerskripte zu unterscheiden, die denselben Namen haben, aber von verschiedenen Autoren geschrieben wurden. Wenn Sie einen Domainnamen haben, können Sie ihn (oder ein Unterverzeichnis) als Namespace verwenden. Andernfalls können Sie ein Tag verwenden: URI.
@namespace ist optional. Wenn vorhanden, wird es möglicherweise nur einmal angezeigt. Wenn nicht vorhanden, wird standardmäßig die Domäne verwendet, von der der Benutzer das Benutzerskript heruntergeladen hat.