Introduction to Greasemonkey

October 29, 2007 – 4:19 pm

GreasemonkeyFirefox 的一个扩展,它能让你通过自定义的脚本来修改你所访问的网页的行为。Greasemonkey 建立起一个平台,用户通过编写在这个平台上运行的“用户脚本(user scripts)”来修改网页的行为。为什么要修改网页的行为呢?这其实跟为程序打热补丁差不多,比如程序有 Bug ,你想修改程序的行为,你想添加或者去掉某个功能,这些都是会经常碰到的情况。举几个实际的例子:

  • 让百度 MP3 搜索直接显示出下载链接的用户脚本
  • 去掉 Gmail 的编辑页面右边的广告让编辑框更宽一些的用户脚本
  • 修复本科生选课网(ZJU)的下拉菜单在 Firefox 里不能显示的用户脚本。

与扩展比起来,用户脚本开发起来要简便得多,而且功能也不弱。用户脚本就用 Javascript 编写,保存为 .user.js 的后缀,在 Firefox 里打开,就可以选择是否安装脚本。在 userscripts.org 有许多现成的用户脚本,通常都能找到合适自己的脚本。需要注意的是 GreaseMonkey 里面的 Javascript 脚本去掉了一些限制,比如可以发起指向别的域的 XMLHTTP 请求,所以也不要随意安装来源不明的用户脚本。

有时候找不到适合自己的用户脚本,或者想要自己定制一个,如果有 Javascript 的经验的话,也能够轻松入门。Dive into Greasemonkey 是一份很不错的入门材料,并且可以免费获得。另外有一本 O’Reilly 出版的 Greasemonkey Hacks ,我倒是没有看过,不过 O’Reilly 公司的书通常都是很不错的!

看完 Dive into Greasemonkey 之后写一些常用的脚本应该都没有问题了,如果有技术问题可以去 Greasemonkey 的 wiki 查看相关的资料,还可以去它的邮件列表提问。它有两个邮件列表,一个是面向 Greasemonkey 用户,讨论编写用户脚本的列表,而另一个则是 Greasemonkey 这个扩展本身开发用的列表。另外,如果你想进一步提高自己,去 userscripts.org 下载别人写的脚本的源代码来阅读也是一个不错的方法。

事实上,虽然在 Greasemonkey 的用户脚本里可以使用 GM 提供的一些扩展以及 Firefox 特有的一些 Javascript 对象,除非是确实要用到特定的功能,写更可移植的代码仍然是首选。因为除了 Firefox ,Opera 、Konqueror 甚至是 IE7(通过 IE7 Pro 这个第三方扩展)也都有类似的功能。如果代码可移植性好的话,通常可以不加修改地拿到各个浏览器上去运行。

最后,如果你编写了一个用户脚本,别人想要使用的话,必须安装 Greasemonkey 这个平台,这就好像发布 Java 或者是 Python 脚本之类的需要特定的虚拟机或者解释器平台的程序一样麻烦,即使可以保证用户安装了 Greasemonkey ,可是版本问题也会困扰你。有一个解决办法就是把 Greasemonkey 脚本编译为独立的 Firefox 扩展。这里有一个在线的编译器。这样用户就不必单独安装 Greasemonkey 了,而且 Firefox 扩展还能自动检查并安装更新版本。

  1. 1 Trackback(s)

  2. Feb 14, 2009: Free Mind » 统计论文被引用的情况

Post a Comment