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

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

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,jquery,框架,脚本,firefox)