我正在学习如何使用Greasemonkey,并想知道@namespace
元数据ID的用途.
它必须是一个网址吗?或者它可以是我的计算机上的文件夹/目录?
它甚至需要填写吗?
它用于避免命名冲突.如果您调用了脚本foobar
并且其他人也这样做了,那么中央存储库很难将它们区分开来.
因此,您应该提供一些您控制的URL(即您拥有它或可以管理它),这基本上意味着"具有该URL的所有内容都由我".现在,这些中央存储库可以区分foobar
从http://somesite.com/
和foobar
从http://anothersite.com
.
它不是基本操作所必需的,但强烈建议您是否要共享脚本.
您可以在一个地方看到命名空间的实际效果是存储首选项.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 - 元数据