什么是Greasemonkey命名空间需要?

我正在学习如何使用Greasemonkey,并想知道@namespace元数据ID是什么。

它必须是一个url吗? 或者它可以是我的电脑上的文件夹/目录?

它甚至需要填写?

它用于避免命名冲突。 如果你把你的脚本叫做foobar而其他人也这样做了,那么中央仓库就很难分辨出来。

因此,您应该提供一些您控制的url(即您拥有该url或可以pipe理该url),这意味着“该url的所有内容均由我自己”。 现在,这些中央存储库可以区分http://somesite.com/ foobarhttp://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.scriptvalsnamespacescriptnamekey/variablename

一般来说,名称空间是一个抽象容器,它提供了它所包含的项目(名称或技术术语或单词)的上下文,并允许对具有相同名称的项目(驻留在不同的名称空间中)进行消歧。

来源: 命名空间 – 维基百科

而更具体的:

这是一个URL,Greasemonkey使用它来区分具有相同名称但由不同作者编写的用户脚本。 如果你有一个域名,你可以使用它(或一个子目录)作为你的名字空间。 否则,您可以使用标签:URI。

@namespace是可选的。 如果存在,它可能只出现一次。 如果不存在,则默认为用户下载用户脚本的域。

来源: 潜入Greasemonkey – 元数据

名字空间可以是一个URL,但不只是。 你可以使用名字空间作为你的用户名或真实姓名。