時代變化真快,Netscape->IE->Firefox & Opera -> Safari & Chrome,依然記得自己擁有的第一臺Toshiba筆記本電腦,從拿到電腦開始到自己背著自己的電腦遠(yuǎn)赴日不落帝國見學(xué)之間的大半年,開機無非Red alert,Starcraft,以及各種國產(chǎn)RPG。無論如何,這時的自己卻從來未考慮過是否有工具可以通過這樣的一個盒子來交流,也從來沒有考慮過用這樣的一個盒子來傳達(dá)自己的想法,亦或接受時代的潮流。直到自己來到日不落的第一天,電腦課,老師教我們打開了第一個網(wǎng)站Google,試著用拼音拼出了zhong guo,我來到了當(dāng)時自己上得最多的一個站點——Sina,隨著自己點開Sina的一刻,我明白了,自己該要啟程了。(大霧,被拖走 跑題了。先簡單解釋一下什么是Userscript: 頁面執(zhí)行的一些功能,多數(shù)是通過Javascript和Flash來實現(xiàn)的。Userscript則是用戶端所執(zhí)行的功能函數(shù)。 所以最簡單地說什么是Userscript: 我覺得這個網(wǎng)站設(shè)計的很不爽,我要讓其人性化一些。于是,就有了各種tweet站點功能的腳本。其中Userscript則是用戶腳本的一個集中托管站點,瀏覽器插件所能實現(xiàn)的大多數(shù)功能其實多數(shù)也可以通過油猴腳本實現(xiàn)。而且通過油猴實現(xiàn)有一個很大的優(yōu)點,就是不用過分介意瀏覽器的升級,并且擁有一定的可移植的可能。當(dāng)然也有很大的局限性,其中包括但不限于Tab管理,ContextMenu Change等等。不過不管怎么說,通過Userscript,我們可以實現(xiàn)很多站點默認(rèn)不能實現(xiàn)或者不愿意實現(xiàn)的功能來簡化我們?nèi)粘5牟僮鳌?/p> 當(dāng)然,Userscript的實現(xiàn)方式的區(qū)別也帶來了這樣的些缺點——不同瀏覽器之間對GM函數(shù)的支持有所不同。 于是,這里僅就最單純的東西進(jìn)行一些介紹好了。 首先 Firefox:1:GreasemonkeyFirefox應(yīng)該是最早應(yīng)用userscript的瀏覽器了(個人所知),其中Greasemonkey更是創(chuàng)造了userscript開發(fā)的奇跡,其強大的功能以及逐漸優(yōu)化到如今所有的沙箱化操作都稱為了如今開發(fā)userscrip支持插件的標(biāo)準(zhǔn) 2 : Scriptish這個我也沒用過,不過因為增加了Update和很多便于開發(fā)者利用的API,而Greasemonkey也因為趨于穩(wěn)定長時間未更新,所以愿意嘗新的童鞋的可以用這個來代替Greasemonkey(也有點比較奇葩的bug)
安裝方法: 打開Firefox 工具(Tools)->插件管理(Add-ons)->獲取插件(Get-Addons)->上面搜索欄輸入Greasemonkey或Scriptish->Install 然后在這里搜索Greasemonkey或者scriptish就可以了,安裝Install后可以下載user.js用戶腳本后拖入瀏覽器則可自動安裝。 Chrome:Chrome可以說在Userscript上確實是度過了一段比較坑爹的時期,主要原因就是Google這家“不作惡”的公司在做很多用戶產(chǎn)品的時候都做了一些很坑爹的不合理的設(shè)定,比如Userscript。 從Chrome剛出的時候就聽說Chrome原生支持Userscript,當(dāng)時聽說了這個消息還很興奮,當(dāng)用的第一天就發(fā)現(xiàn),自己著著實實被套牢了。無沙箱支持,無跨域請求支持,于是留下的,就是一具空殼... 后面陸續(xù)作出的插件就解決了這些問題。包括(Blank Canvas Script Handler,Tampermonkey,Ninjakit) 這里只介紹和推薦Tampermonkey(其他的我沒用過不熟)。主要原因就是Tampermonkey的現(xiàn)任維護(hù)者就是Greasemonkey的開發(fā)者,雖然在兼容性還存在一定問題(機制上的問題),不過多數(shù)情況都可以通過比較簡單的Tweak來實現(xiàn)兼容的。 安裝方法: 打開Chrome->打開地址->左側(cè)地址欄輸入Tampermonkey->點擊Install
Opera:Opera是除了Chrome以外另外一個讓人感覺很坑爹的瀏覽器,和Chrome一樣,原生支持userscript,可惜直到現(xiàn)在,都沒有找到Opera的userscript實現(xiàn)沙箱的方法,不過卻在Opera 9升級后通過對userscript的執(zhí)行機制的修改實現(xiàn)了跨域的可能。雖然如此,Opera還是一定程度上能夠兼容多數(shù)GM腳本的,不過部分GM函數(shù)和Meta則無法支持,會帶來一定的兼容性問題。 安裝方法: 打開Opera后點擊設(shè)置(Preference) 然后如圖設(shè)置:
點擊Javascript Options(Javascript選項)后,在Userscript Folder那里輸入你存放用戶腳本的實際目錄(比如D:\Opera\USERJS),目錄存放位置可以隨意定義。初步設(shè)置完成。 這里需要解決跨域和HTTPS下USERJS的使用問題:在地址欄輸入about:config里修改如下項目: 修改JS Storage的空間上限,實現(xiàn)跨域需要。 HTTPS頁面也使用UERSCRIPT 當(dāng)然實現(xiàn)GM函數(shù)和跨域需要下載一些前置腳本來實現(xiàn),這里放上自己的,如果對偶不信任的童鞋可以爬帖自炊,這里提供一份mediafire的自己用的前置腳本的分流。 a.對偶信任的可以直接下回來解壓后扔進(jìn)自己的userscript腳本目錄b.不信任的童鞋GM_emulation腳本以及跨域請求腳本請參閱: 便于尋找留一份原作者分流 下載回來之后放進(jìn)Opera的Userscript文件夾里,同時將http:///scripts/show/88932拉回來的腳本改名為aab-greasemonkey-emulation.user.js 準(zhǔn)備工作完成。
P.S.Userjs在Opera上的運行慢的很....可能頁面出來要5-10s才能加載完成,所以調(diào)試的時候經(jīng)常是否出錯了自己都不知道。 SafariSafari上的Userscript發(fā)展史也異常糾結(jié),在Safari支持插件之前只能通過SIMBL和GreaseKit實現(xiàn),雖然可以解決一些問題,不過跨域和沙箱的問題一直都沒有得到解決。直到Extension的出現(xiàn),Safari才出現(xiàn)了一個像樣的插件,即——Ninjakit。安轉(zhuǎn)前需開啟Extension支持。 開啟Extension 需要安裝的童鞋可以直接去作者的官方頁面下載,下載地址,不過自己卻不推薦直接用作者的這個版本,因為里面跨域請求的代碼部分有一些小問題,自己做的一些小fix,已經(jīng)提交了作者但是還未回應(yīng),于是如果信任偶的童鞋可以直接用偶自己打包好的版本。 當(dāng)然,不信任的童鞋暫時偶也沒什么好辦法,只能等原作者更新了。偶修改的部分: 1:GM_xmlhttprequest的請求頭未裝載 2:GM_xmlhttprequest非async請求,無法追蹤status。 3: unsafeWindow支持 而且因為Safari的Extension的執(zhí)行是完全沙箱化的,所以,暫時沒找到辦法訪問unsafeWindow,這個應(yīng)該會有其他的trick能夠解決,所以在兼容性上是會有一定問題的。不過多數(shù)腳本試驗后還是可以正常運行的。
IE等其他瀏覽器:這一點只能暫時說抱歉了,早期的IE5和IE6還是有GM支持的,非常局限的一些功能,如今的IE因為一些眾所周知的原因逐漸被眾開發(fā)者所拋棄,這里只能期待從IE9開始逐漸開始非主流的微軟能夠重新振奮一下開發(fā)者,為開發(fā)者提供一個相對Identical的平臺來實現(xiàn)作業(yè)了。 至于如360瀏覽器,世界窗瀏覽器之類的,我不熟悉,或許有其他達(dá)人有使用經(jīng)驗的,歡迎提議拍磚,自己也會陸續(xù)更新。 上腳本安裝方法:支持的瀏覽器在安裝完各自的GM插件后,進(jìn)入想下載的userscript托管頁面,然后點擊Install即可。如ThunderAssistant |
|