什么是Greasemonkey命名空间?

时间:2008-12-22 16:07:39

标签: metadata namespaces greasemonkey

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

是否必须是网址?或者它可以是我的计算机上的文件夹/目录?

是否需要填写?

4 个答案:

答案 0 :(得分:52)

它用于避免命名冲突。如果您调用了脚本foobar而其他人也这样做了,那么中央存储库很难将它们分开。

因此,您应该提供一些您控制的URL(即您拥有它或可以管理它),这基本上意味着“具有该URL的所有内容都由我”。现在,这些中央存储库可以区分foobarhttp://somesite.com/foobarhttp://anothersite.com

没有必要进行基本操作,但强烈建议您是否要共享脚本。

答案 1 :(得分:13)

您可以在一个地方看到命名空间的实际效果是存储首选项。 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 namespacescriptnamekey/variablename

答案 2 :(得分:9)

  

通常,命名空间是一个抽象容器,为其拥有的项(名称,技术术语或单词)提供上下文,并允许消除具有相同名称的项目(驻留在不同的名称空间中)。

     

来源:Namespace - Wikipedia

更具体:

  

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

     

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

     

来源:Dive Into Greasemonkey - Metadata

答案 3 :(得分:1)

命名空间可以是一个URL,但不仅仅是。您可以将某些单词用作命名空间作为您的用户名或真实姓名。