当前位置:  开发笔记 > 运维 > 正文

什么是Greasemonkey命名空间?

如何解决《什么是Greasemonkey命名空间?》经验,为你挑选了3个好方法。

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

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

它甚至需要填写吗?



1> Joachim Saue..:

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

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

它不是基本操作所必需的,但强烈建议您是否要共享脚本.


@GrantThomas:例如,您可以使用您的电子邮件地址(或者甚至是`mailto:`URI,如果您想将其设为URL).
必须是URL吗?
@GrantThomas:根据[this Wiki](http://wiki.greasespot.net/Metadata_Block#.40namespace):“尽管名称空间是非语义的,但经常使用URL。” 因此,不需要,它不必是URL,但是您“拥有”的URL是保证值唯一的简单方法。

2> Athena..:

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



3> Tamara Wijsm..:

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

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

更具体:

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

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

资料来源:深入了解Greasemonkey - 元数据

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有