想让您的用户脚本“长出” Greasemonkey 的架构吗?您的用户脚本需要访问 Javascript 特许函数,本地文件,或者只有全资格的扩展才具有的其它 Firefox 特性?可以把您的用户脚本转换为全资格的 XPI,仅仅点几下就行了。感谢 Adrian Holovaty 惊人的 Greasemonkey 编译器!
过程 6.1. 把 Butler 编译成浏览器扩展
-
访问 Butler 用户脚本源代码。在菜单中,选择编辑 (E) → 全选 (A) (Ctrl-A)复制用户脚本源代码到剪贴板。
-
转到 “Javascript” field. 在菜单中,选择编辑 (E) → 粘贴 (P) (Ctrl-V)粘贴 Butler 用户脚本源代码。
-
在 “Creator(作者)” 栏中,填入
Mark Pilgrim。 -
在 “Version(版本)” 栏中,填入 Butler 用户脚本的当前版本(0.3截至发稿时, 否则请检查脚本的元数据段找到确切的版本)。
-
打开一个新窗口或者标签,访问 GUID Generator(GUID 产生器) ,产生一个随机的 GUID。把这个 GUID 复制到剪贴板,包含花括号。
-
切换回 “Greasemonkey 编译器” 页面。在 “GUID” 栏中,粘贴刚才从 GUID 产生器上获得的 GUID。
-
在 “Homepage(主页)” 栏中,填入
。http://diveintomark.org/projects/butler/ -
点击 Create the Firefox extension(创建 Firefox 扩展)。Firefox 会弹出一个对话框:“打开 butler.xpi”。选择保存到磁盘,并且选择下载目录
好啦!您先在有 Butler 的浏览器扩展了。在安装 Butler 扩展前,应该先禁用 Butler 用户脚本然后 Google 一下禁用是否生效。然后安装 Butler 扩展,选择文件 (F) → 打开... (O)然后选中用 Greasemonkey 编辑器创建的 butler.xpi 文件。务必在安装完成后重新启动浏览器。
.xpi 文件其实就是有确定的目录结构的 ZIP 压缩包。可以用任一 ZIP 程序(例如 Windows 下用 7-zip 或者在 Mac OS X 下用 Stuffit Expander)解压缩文档,然后看下浏览器扩展是由哪些文件组成。
butler.xpi | +-- install.rdf | +-- chrome/ | +-- butler/ | +-- content/ | +-- browser.xul | +-- contents.rdf | +-- javascript.js
这里有四个有关的文件。两个 RDF 文件是大多数 Firefox 的样板文件。其他两个包含有实现代码。
-
install.rdf - 与扩展自身有关的元数据,包括名称、版本、描述和兼容的 Firefox 版本。
-
browser.xul - 引导代码。检查对比当前的 URL 与脚本的
@include和@exclude参数,然后注入执行脚本。 -
contents.rdf - 额外的元数据,Firefox 样板文件。
-
javascript.js - 原用户脚本的源代码。
基本上,Greasemonkey 编译器创建了真正的 Greasemonkey 缩减版,没有用户脚本,在适当的 URL 上自动加载一个用户脚本。但是如果有所有的源文件,您可以自己创建自定义对话框、修改配置面板,或者注册User Script Commands以外的菜单项……发狂了!