转:Greasemonkey(油猴子)元数据介绍


下面对该 User Script 做些解释。
User Script 开头的部分是对元数据的定义。它告诉 Greasemonkey 该 User Script 的名字、命名空间、描述以及何时应该运行该 User Script 。下面我们一一对它们做详细讲解。

@name
顾名思义,这是 User Script 的名字。它会出现在 Greasemonkey 的窗口中,包括安装和管理的窗口。
可选,如果不指定,默认为 User Script 的文件名(不包含后缀 .user.js)。
@namespace
User Script 的命名空间,它用于区别同名但却是“不同”的 User Script 。通常它的值是一个URL。
可选,如果不指定,默认为下载该 User Script 的网站域名。
@description
User Script 的描述信息,告诉使用者该 User Script 会做些什么事情。
可选,如果不指定,默认为空。但是处于从方便管理 User Script 的角度出发,建议填写 User Script 描述。
@include
@include 告诉 Greasemonkey 该 User Script 应当在哪些 URL 对应的网页上运行。“*”的意思是匹配所有字符。例如,“http://www.ibm.com/developerworks/cn/*”指该 User Script 会在所有 developerWorks 中国的网页中运行。如果您将本例中的 @include 改成“http://www.ibm.com/developerworks/cn/java/*”,那么它将只对 Java 专区的文章生效。
可选,如果不指定,默认值为“*”,也就是所有站点。
@exclude
@exclude 则是告诉 Greasemonkey 要排除哪些网页。您可以尝试着将本例的元数据改成如下:

// ==UserScript==
// @name dW Customizer
// @namespace http://www.ibm.com/developerworks/cn/
// @description 该脚本用于定制 developerWorks 中国网站文章的背景色
// @include http://www.ibm.com/developerworks/cn/*
// @exclude http://www.ibm.com/developerworks/cn/java/*
// ==/UserScript==

那么,该 User Script 将会在所有除了 Java 专区以外的 developerWorks 中国的网页中运行。从该例中,您也可以看出,@exclude 优先于 @include。另外,@include 和 @exclude 都可以被声明多次(一个声明是单独的一行)。Greasemonkey 将根据所有的声明确定该 User Script 运行范围。
可选,如果不指定,默认为不排除任何网页。

至于元数据定义之后的代码则是纯粹的 Javascript ,不过这里我们还是简单地解释一下。
addGlobalStyle 是一个用于向 head 中添加样式定义的函数。第一个对 addGlobalStyle 函数的调用添加了对 body 背景色的样式定义。该语句运行后,页面背景已经变成我们指定的颜色:米色。但是你会发现左边的内容导航栏的背景色仍然是白色 - 这让整个页面很不协调。所以,在指定 body 背景色的语句之后,又添加了一个 addGlobalStyle 语句用于覆盖内容导航栏的样式定义。
via:https://www.ibm.com/developerworks/cn/opensource/os-cn-greasemonkey/

Archives