作者DarkKiller (System hacked)
看板Ajax
标题Re: [问题] 最近试着写greasemonkey的脚本…
时间Sun Mar 20 06:55:53 2011
※ 引述《DarkKiller (System hacked)》之铭言:
: → birdhackor:会用jQuery就是不想写这麽长阿...怎麽反过来了= = 03/20 06:13
: 推 TonyQ:@bridhackor , 问题在於 gs 要引入jQuery 有他的前置程序 03/20 06:26
: → TonyQ:要写,所以如果只为了这功能的话,这样的确比较省功。 03/20 06:27
: → TonyQ:而且也比较不肥。 03/20 06:27
: → TonyQ:@DK, 事实上 jQuery 在它的 clean function就是这样写的。 03/20 06:27
: → TonyQ:clean 是$(html) 过程中他会去作的程序之一。 03/20 06:27
: → birdhackor:其实只要一行就好了 03/20 06:28
: → TonyQ:可以看 jQuery.buildFragment 这只。:P 03/20 06:28
: → birdhackor:// @require http://ajax.googleapis.com/ajax/ 03/20 06:30
: → birdhackor:libs/jquery/1.3.2/jquery.min.js 03/20 06:30
: → birdhackor:引用完就可以直接用jquery写了~很轻松的 03/20 06:31
: → TonyQ:hmm 看来现在比以前简单一点。XD 03/20 06:43
: → TonyQ:不过我不喜欢depend on lib ,除非需要。 03/20 06:43
会这样推荐当然是有原因... 一开始我是用 @require 的写法开发:
http://wiki.greasespot.net/Metadata_Block
@require 的方式会在「安装 script」的时候抓取,并放到目录里。这对於开发
时有点麻烦,不过忍一忍还能接受...
用了一阵子後,同事跟我说 Google Chrome 不支援这个语法... (oops!)
当时想到如果用 GM_xmlhttpRequest 抓回来 eval() 是一个方法,但这样「偶而」
会需要透过网路 jQuery library,会比较慢。
後来比较熟悉一些用法以後就懒的在这类 script 里面用 jQuery 了:
(function(d){
var s = d.createElement('script');
s.src = '
http://example.com/test.min.js';
d.getElementsByTagName('head')[0].appendChild(s);
})(document);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.242.135.97
1F:→ TonyQ:我一直都是用append script到head的方式去引入的。XD 03/20 07:14
2F:推 mesak:可以参考我写的 FACEBOOK SIWTCH ACCOUNT 用HEAD 去引入一样 03/20 12:43
3F:→ mesak:没办法支援 CHROME , CHROME 有保护 浏览器的措施,所以 03/20 12:43
4F:→ mesak:抓不到原始页面的 变数 跟 FUNCTION 03/20 12:44
5F:→ mesak:另外 外部引入的 jquery require 会有 bug 03/20 12:44