作者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
→ TonyQ:我一直都是用append script到head的方式去引入的。XD 03/20 07:14
推 mesak:可以參考我寫的 FACEBOOK SIWTCH ACCOUNT 用HEAD 去引入一樣 03/20 12:43
→ mesak:沒辦法支援 CHROME , CHROME 有保護 瀏覽器的措施,所以 03/20 12:43
→ mesak:抓不到原始頁面的 變數 跟 FUNCTION 03/20 12:44
→ mesak:另外 外部引入的 jquery require 會有 bug 03/20 12:44