2012年(272)
分类: 网络与安全
2012-06-26 11:12:53
小猴子还是很可爱的。这个扩展在Firefox里地位可以说是比较特殊。
前几天黑哥还写了篇blog来介绍它,我再补充几点。
实际上GreaseMonkey就是让你在所有访问的页面上都加载一个js脚本。当然这个js脚本和一般的js有一点细微的区别,就是可以多用几个功能强大的API。
按照官方的教程可以很简单的创建一个GreaseMonkey用的脚本。类似下面这个
// supmap
// version 0.0.1 Beta
// Copyright (c) 2009, axis
// 2009-02-02
// Reverse word of "pampus" (Pampus Plains in Argentine)
//
//
// ==UserScript==
// @name supmap
// @namespace
// @description supmap
// @include *
// @exclude *
// ==/UserScript==
//////////////////////////////////////////
alert("supmap!");
这里的注释需要按照规则来,在官方手册上写的很清楚。
GreaseMonkey最方便的地方就是几个强大的API:
l
- 记录日志到错误控制台
l
-
读取脚本专用的配置值
l
-
设置脚本专用的配置值
l
-
在 用户脚本命令
(C) 子菜单中添加菜单项
l
-
进行任意的 HTTP 请求
l
-
在新标签中打开指定的 URL
l
-
给页面添加 CSS 样式
其中
GM_getValue(), GM_setValue() 就像是
anehta里用过的cache一样,不过这里GM用的这个cache,是可以跨页面的! 简单说,就是可以把一个变量保存在浏览器里,到下一个页面,再读出来用。
而
GM_xmlhttpRequest, 则是可以实施跨域的ajax操作!
这两个功能极其强大,能够大大的丰富脚本的功能。
不过它也不是万能的。因为这些脚本都是在加载页面DOM之后,所有脚本执行完后才执行的,所以很多需要在页面加载前或者页面加载过程中,或者在其他脚本执行之前执行的工作是无法胜任的。
比如需要hook一个函数,如果放在最后执行hook操作,则之前执行过的函数都hook不到了。