什么是Greasemonkey命名空间需要?
我正在学习如何使用Greasemonkey,并想知道@namespace
元数据ID是什么。
它必须是一个url吗? 或者它可以是我的电脑上的文件夹/目录?
它甚至需要填写?
它用于避免命名冲突。 如果你把你的脚本叫做foobar
而其他人也这样做了,那么中央仓库就很难分辨出来。
因此,您应该提供一些您控制的url(即您拥有该url或可以pipe理该url),这意味着“该url的所有内容均由我自己”。 现在,这些中央存储库可以区分http://somesite.com/
foobar
和http://anothersite.com
foobar
。
基本操作没有必要,但强烈build议如果你想分享你的脚本。
一个地方你可以看到命名空间的实际效果是存储偏好。 Nampsaces用于唯一标识任何脚本特定的存储偏好的脚本。
例如,如果你有这样的脚本:
// ==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是可选的。 如果存在,它可能只出现一次。 如果不存在,则默认为用户下载用户脚本的域。
来源: 潜入Greasemonkey – 元数据
名字空间可以是一个URL,但不只是。 你可以使用名字空间作为你的用户名或真实姓名。