Я изучаю, как использовать Greasemonkey, и задавался вопросом, что означает идентификатор метаданных @namespace
.
Должен ли он быть веб-адресом? Или это может быть папка/каталог на моем компьютере?
Нужно ли его заполнять?
Я изучаю, как использовать Greasemonkey, и задавался вопросом, что означает идентификатор метаданных @namespace
.
Должен ли он быть веб-адресом? Или это может быть папка/каталог на моем компьютере?
Нужно ли его заполнять?
Пространство имен используется, чтобы избежать конфликтов имен. Если бы вы назвали свой сценарий foobar
, а кто-то другой сделал то же самое, тогда центральным репозиториям будет трудно их отличить.
Поэтому вы должны предоставить некоторый URL-адрес, которым вы управляете (то есть вы владеете им или можете управлять им), что в основном означает "все, что с этим URL-адресом, принадлежит мне". Теперь эти центральные репозитории могут различать foobar
от http://somesite.com/
и foobar
от http://anothersite.com
.
Это не обязательно для базовой операции, но настоятельно рекомендуется, если вы хотите поделиться своими сценариями.
Помните, что mailto:[email protected]
также является допустимым URL-адресом и может быть возможным вариантом, если вы не владеете или не управляете собственным доменом.
В одном месте вы можете увидеть практический эффект пространств имен в сохранении предпочтений. Nampsaces используются для уникальной идентификации скриптов для любых сохраненных настроек script.
Например, если у вас есть script, как это:
// ==UserScript==
// @name Script Name
// @namespace http://example.com
// @include *
// ==/UserScript==
GM_setValue("key", "value");
Это будет сохранено в ваших предпочтениях (доступно в prefs.js и about: config) следующим образом:
greasemonkey.scriptvals. http://example.com/Script Name.key
Обратите внимание на формат: greasemonkey.scriptvals. namespace
. scriptname
. key/variablename
В общем случае пространство имен является абстрактным контейнером, предоставляющим контекст для элементов (имен или технических терминов или слов), которые он содержит, и допускающих неоднозначность элементов, имеющих одинаковое имя (находящихся в разных пространствах имен).
Источник: Пространство имен - Википедия
И более конкретно:
Это URL-адрес, и Greasemonkey использует его для отличия пользовательских скриптов, имеющих одно и то же имя, но написанных разными авторами. Если у вас есть доменное имя, вы можете использовать его (или подкаталог) в качестве своего пространства имен. В противном случае вы можете использовать тег: URI.
@namespace необязательно. Если он присутствует, он может появляться только один раз. Если нет, по умолчанию используется домен, из которого пользователь загрузил пользователя script.
Источник: Погружение в Greasemonkey - метаданные
Пространство имен может быть URL, но не только. Вы можете использовать в качестве пространства имен несколько слов в качестве своего имени пользователя или имени.