Greasemonkey 命名空间有何用途?

发布于 2024-07-10 20:52:23 字数 131 浏览 7 评论 0原文

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

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

还需要填写吗?

I'm learning how to use Greasemonkey, and was wondering what the @namespace metadata id is for.

Does it have to be a web address? Or can it be a folder/directory on my computer?

Does it even need to be filled in?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

老旧海报 2024-07-17 20:52:23

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

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

对于基本操作来说不是必需的,但如果您想共享脚本,强烈建议您这样做。

请记住 mailto:[电子邮件受保护] 也是一个有效的 URL,当您不拥有或控制自己的域时,这可能是一个可能的选项。

A namespace is used to avoid naming collisions. If you called your script foobar and someone else did as well, then central repositories would have a hard time telling them apart.

Therefore you should provide some URL that you control (i.e. you own it or can administrate it) that basically means "everything with that URL is by me". Now those central repositories can distinguish between foobar from http://somesite.com/ and foobar from http://anothersite.com.

It's not necessary for basic operation, but strongly suggested if you want to share your scripts.

Keep in mind that mailto:[email protected] is also a valid URL and might be a possible option when you don't own or control a domain of your own.

空宴 2024-07-17 20:52:23

您可以看到命名空间实际效果的一处是存储首选项。 Nampsace 用于唯一标识任何特定于脚本的存储首选项的脚本。

例如,如果您有这样的脚本:

// ==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命名空间脚本名称键/变量名

One place you can see the practical effect of namespaces is in storing preferences. Nampsaces are used to uniquely identify scripts for any script-specific stored preferences.

For example, if you have a script like this:

// ==UserScript==
// @name            Script Name
// @namespace       http://example.com
// @include         *
// ==/UserScript==


GM_setValue("key", "value");

That would be stored in your preferences (accessible in prefs.js, and about:config) like so:

greasemonkey.scriptvals.http://example.com/Script Name.key

Note the format: greasemonkey.scriptvals . namespace . scriptname . key/variablename

一抹微笑 2024-07-17 20:52:23

一般来说,命名空间是一个抽象容器,为它所保存的项目(名称、技术术语或单词)提供上下文,并允许消除具有相同名称的项目(驻留在不同命名空间中)的歧义。

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

更具体地说:

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

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

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

In general, a namespace is an abstract container providing context for the items (names, or technical terms, or words) it holds and allowing disambiguation of items having the same name (residing in different namespaces).

Source: Namespace - Wikipedia

And more specific:

This is a URL, and Greasemonkey uses it to distinguish user scripts that have the same name but are written by different authors. If you have a domain name, you can use it (or a subdirectory) as your namespace. Otherwise you can use a tag: URI.

@namespace is optional. If present, it may appear only once. If not present, it defaults to the domain from which the user downloaded the user script.

Source: Dive Into Greasemonkey - Metadata

ぽ尐不点ル 2024-07-17 20:52:23

命名空间可以是 URL,但不仅如此。 您可以使用一些单词作为名称空间作为您的用户名或真实姓名。

Namespace can be a URL, but not only. You can use as namespace some words as your username or real name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文