强强联手,在Greasemonkey中使用jQuery类库

轉 : [url]http://cuimingda.com/2008/10/using-jquery-in-greasemonkey-script.html[/url]

Greasemonkey是Firefox下非常强大一个扩展,可以为每个网站编写自定义脚本,定制各种功能。而jQuery是一个非常强大的JavaScript类库,而且只有15k大小。但怎样能把两者结合起来呢,本文就将介绍一个代码片段,实现这种强强组合,让你的脚本开发更加便利。

下面是Greasemonkey一段脚本的雏形,基本除了头信息都包括了,只要在main里面写具体的代码就可以,使用这段脚本需要注意的是,网站中一定不能使用其他JavaScript框架,因为这里共用了$符,会冲突的,最后的结果是网站中的脚本可能无法正常运行。


(function() {
var load = function() {
var scriptTag = document.createElement('script');
scriptTag.src = 'http://jquery.com/src/jquery-latest.js';
scriptTag.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(scriptTag);

load = function() {
if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(load,100); }
else { $ = unsafeWindow.jQuery; main(); }
};
return load();
}; load();

function main() {
// 在这里写我们自己的代码
}
})();


做一下简要说明:

* 引入懒惰定义模式就是为了处理那些只调用一次的代码。
* 因为是在Greasemonkey中使用,所以把jQuery直接指向了网站上的最新版本源代码,因为不是像扩展一样在本地调用,所以执行的时候肯定会增加时间,明显的会感到从jQuery网站读取脚本,索性脚本不大,只有15k。
* 自己的代码直接放在main里就可以了,如果有一些自定义函数,和main同级就可以。
* 因为加载jQuery脚本要从第三方网站读取数据,肯定是需要时间的,所以代码中使用了setTimeout来进行检测,直到对象加载完毕才执行代码。
通过使用少量的JavaScript脚本,自定义网页显示方式或表现方式。Greasemonkey是Mozilla Firefox的一个附加组件。它让用户安装一些脚本使大部分HTML为主的网页于用户端直接改变得更方便易用。随着Greasemonkey脚本常驻于浏览器,每次随着目的网页打开而自动做修改,使得运行脚本的用户印象深刻地享受其固定便利性。 技术明细: 大部分Greasemonkey用户脚本都是自行撰写,使用对某网站专用的JavaScript代码,通过文档对象模型(DOM)接口对网页内容做操作。userscripts.org维护了个Greasemonkey数据库。该数据库描述哪个网址网页对应到哪个脚本。当用户加载匹配的网页,Greasemonkey便调用相关的脚本,而该脚本便根据脚本内容改变网页的内容。Greasemonkey脚本亦能通过非网域绑定的XMLHTTP要求来查询外部HTTP资源。Greasemonkey亦遵循某用户名.user.js的格式,这让当该特定用户拜访时Greasemonkey可自动侦测并提供安装选项。除了JavaScript代码,Greasemonkey脚本包括有限可选用后数据集。该后数据集描述了脚本名称、脚本描述、网址用来区分同名脚本的地址空间、以及原本该脚本为哪些网址撰写的列表。Greasefire扩展:同Greasemonkey扩展配合使用,自动显示在userscripts.org的脚本库中是否存在可以在当前正在浏览网站上使用脚本,如果存在Greasemonkey的猴头图标背景就会变为彩色的。右键点击猴头图标,最上面一行就是打开当前网站可用脚本列表的选项。Platypus(platypus.mozdev.org)附加组件可让用户可以编辑网页(删除或者移动某碍眼的部分)。Platypus随后将结果存成常驻的Greasemonkey脚本。 典型的脚本: 用户群已发展大量的脚本,以下是其中的一些应用:调整Gmail让Google Reader内嵌,因而提供RSS新闻订阅的选项。当联机浏览某本书时同时显示对手网站同本书价钱。去除来自某些站的广告,包括弹出视窗与Google文字广告。改变网页的版面,包括原本该网页作者未考虑到的元素大小与浏览器画面大小。自动完成窗体。浏览某些布告栏网站自动过滤特定的发帖人。增删网页上的某些功能。让用户从某些视频站点如Google Video以及YouTube存下FLV视频文件。从现行网页找寻任何RSS新闻订阅,并将它们显示在可扩展、漂浮于网页上的皮肤里。突破百度贴吧对言论内容的管制,辅助发表繁体汉字及不受贴吧服务器支持的字符,或者将文字转换为图片发表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值