Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1198938
  • 博文数量: 272
  • 博客积分: 3899
  • 博客等级: 中校
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-15 14:53
文章分类

全部博文(272)

文章存档

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不到了。

阅读(1757) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~