GreaseMonkey
维基百科,自由的百科全书
|
Greasemonkey |
|
|---|---|
| 設計 | Aaron Boodman |
| 最新版本 | 0.8.20090123.1 / 2009年2月18日 |
| 作業系統 | 跨平台 |
| 語言 | 英文 |
| 類型 | Mozilla附加组件 |
| 許可協議 | MIT許可證 |
| 網站 | www.greasespot.net |
| Mozilla Firefox (分類) |
|---|
| Mozilla |
| 用戶自訂 |
| 衍生及相關計劃 |
|
Flock • Gnuzilla |
| 起源與歷史 |
|
|
GreaseMonkey是Mozilla Firefox的一個附加元件。它讓使用者安裝一些腳本使大部分HTML為主的網頁於使用者端直接改變得更方便易用。隨著 Greasemonkey 腳本常駐於瀏覽器,每次隨著目的網頁開啟而自動做修改,使得執行腳本的使用者印象深刻地享受其固定便利性。
Greasemonkey可替網頁加入些新功能(例如在亞馬遜書店嵌入商品比價功能)、修正網頁錯誤、組合來自不同網頁的資料、或者數繁不及備載的其他功能。寫的好的Greasemonkey腳本甚至可讓其輸出與被修改的頁面整合得天衣無縫,像是原本網頁裡的一部分。
目录 |
[编辑] 技術明細
大部分Greasemonkey使用者腳本都是自行撰寫,使用對某網站專用的JavaScript代碼,透過文檔對象模型(DOM)介面對網頁內容做操作。userscripts.org維護了個 Greasemonkey 資料庫。該資料庫描述哪個網址網頁對應到哪個腳本。(注意:廢棄腳本倉庫 可能還保留許多還沒合併到新倉庫)。
當使用者載入匹配的網頁,Greasemonkey便呼叫相關的腳本,而該腳本便根据脚本内容改变网页的内容。Greasemonkey腳本亦能透過非網域綁定的XMLHTTP要求來查詢外部HTTP資源。Greasemonkey亦遵循某使用者名.user.js的格式,這讓當該特定使用者拜訪時 Greasemonkey 可自動偵測並提供安裝選項。除了JavaScript代碼,Greasemonkey腳本包括有限可選用後資料集。該後資料集描述了腳本名稱、腳本描述、網址用來區分同名腳本的位址空間、以及原本該腳本為哪些網址撰寫的列表。
- Greasefire 扩展[1]:同 Greasemonkey 扩展配合使用,自动显示在 userscripts.org 的脚本库中是否有可以在当前正在浏览网站上使用的脚本,有的话 Greasemonkey 的猴头图标背景就会变为彩色的。右键点击猴头图标,最上面一行就是打开当前网站可用脚本列表的选项。
- Platypus [2] 附加元件可讓使用者可以編輯網頁(刪除或者移動某礙眼的部分)。Platypus隨後將結果存成常駐的Greasemonkey腳本。
[编辑] 典型的腳本
使用者群已發展大量的腳本,以下是其中的一些應用:
- 調整Gmail讓Google Reader內嵌,因而提供RSS新聞訂閱的選項。
- 當線上瀏覽某本書時同時顯示對手網站同本書價錢。
- 去除來自某些站的廣告,包括彈出視窗與Google文字廣告。
- 改變網頁的版面,包括原本該網頁作者未考慮到的元素大小與瀏覽器畫面大小。
- 自動完成表單。
- 瀏覽某些佈告欄網站自動過濾特定的發帖人。
- 增刪網頁上的某些功能。
- 讓使用者從某些視頻站點如Google Video以及YouTube存下FLV視頻檔案。
- 從現行網頁找尋任何RSS新聞訂閱,並將它們顯示在可擴展、漂浮於網頁上的面板裡。
[编辑] 隨使用者腳本引發之技術、操作、及道德上的問題
許多Firefox社群的成員,以及相當多的技術分析師,警告Greasemonkey的使用氾濫,並且相關的使用者腳本技術需要在發佈時更注意。他們的關注包括:
- 可能讓某些廣告網站沒生意做。許多Firefox使用者已經利用Adblock Plus屏閉掉網頁廣告,不過 Greasemonkey 可被用來換掉原本廣告主的廣告成為它競爭對手的廣告。這導致對網頁廣告人為灌水,或者愚弄被付費廣告商的統計程式。
- 增加網站每頁的垃圾流量。某些Greasemonkey腳本是設計來取得使用者拜訪哪些網頁的額外資訊,比如那些從 del.icio.us、黑米、或者Bloglines提供的腳本。如果這些腳本被廣泛使用,它們有可能造成被拜訪網站不必要的額外流量。
- 隨著許多網頁專用的腳本激增,分別某網頁的問題是實際上網頁編程上的臭蟲,還是訪問者本地端Greasemonkey腳本的困難度也隨之增加。基於如此,抓蟲除錯更為麻煩。
- 腳本錯誤大致肇因於Greasemonkey開發者與網站開發者缺乏互動。
- Greasemonkey只有對 HTML網頁有效,對於Flash、Flex,以及Silverlight開發的網頁無效。
- 富網路程式(Rich Internet Applications)對 Greasemonkey 腳本開發者來說比起靜態網頁更困難控制。這是因為該網頁程式執行越多的邏輯,Greasemonkey 作者得考慮得越複雜才不會打擾到原本程序的功能。
- 原本的網站開發者推出新版時會造成相對應 Greasemonkey 腳本停止工作。因此,沒有與原本網站開發者互動而撰寫的 Greasemonkey 腳本可能造福一時,但終非長遠之計。
[编辑] Greasemonkey 與其它瀏覽器的相容性與相等軟體
[编辑] 其他Mozilla為基礎的瀏覽器
Greasemonkey可直接用於Firefox、Flock、與Epiphany。Epiphany Greasemonkey是Epiphany附加元件包的一部分。然而,該附加元件並不完全相容於2.15.1版,導因於某些Greasemonkey應用程式介面功能(例如:GM_getValue)不支援。此外,也有自訂版本的 SeaMonkey:[3]。
[编辑] Opera
Opera第8版也增加了使用者腳本功能。隨著Opera與Firefox支援W3C文檔對象模型(DOM),許多Greasemonkey使用者腳本現在在Opera下執行正確。
[编辑] Safari
Creammonkey 與 PithHelmet(共享軟體)是Safari瀏覽器下類似的工具。
[编辑] Konqueror
Konqueror 使用者腳本是一種給 KDE Konqueror 的網頁修改工具,其目的在相容於Greasemonkey腳本與後資料集。它以一種KPart而存在。
[编辑] Internet Explorer
在Internet Explorer下,IE7pro、iMacros、Trixie(最近更新於2005)、Turnabout(最近更新於2006)、與 Greasemonkey for IE(最新更新於2006)等等插件提供類似的功能。 Turnabout 曾經是BSD許可的開源軟體,不過自2006年9月,源代碼不再提供。 Firefox 下的 Greasemonkey 因為持續開發所以舊的IE下的 Greasemonkey 插件便缺少了現代腳本所需要的功能。
[编辑] 類似軟體
- Proxomitron,開發於1990年代晚期,程式於 JavasScript 前載入並主動監視 HTTP 串流,因此它為跨瀏覽器相容,並且透過正則表達式相似的比對語言提供類似Greasemonkey 的功能。
- Proximodo受proximitron啟發並可相互操作;是一種開源軟體,客戶端代理伺服器所以允許對網頁內容動手腳。
- Privoxy是一種開源軟體,客戶端代理伺服器所以允許對網頁內容動手腳。它支援很多操作系統。
- MouseHole是一種開源軟體,客戶端代理伺服器,允許對網頁內容透過Ruby動手腳。
- Monkeygrease 是一種JavaServlet可用來修改客戶端接收到之前的Java(版權軟體)網頁程式輸出。
- Chickenfoot 是一種 Firefox 的附加元件用於讓終端使用者與駭客於網頁上腳本互動。
- 給 Firefox 用的 iMacros 是一種 Firefox 的附加元件讓使用者紀錄並重播所謂「網際網路巨集」,用來執行網頁自動化、分析網頁、以及測試網頁。
- Stylish 是一種 Firefox 的附加元件透過改變用戶端的 CSS,進而改變網頁的編排。
- Bookmarklets 可以在任何網頁隨心所欲的執行 JavaScript,不過它需要使用者點擊啟用,而非自動執行。
- Firebug 是一種開發者附加元件讓使用者隨心所欲的透過 DOM 即時改變網頁。
[编辑] 其他選擇
在沒有附加元件像 Greasemonkey 的情況下,修改網站也可以透過下面幾種方式:
- 於網址列鍵入 javascript:,或者使用 bookmarklets。
- 使用瀏覽器的 DOM 檢視器。
- 使用本地端 HTTP 代理服務器,如 WebWasher、Privoxy 或 Proxomitron 以更改 HTML。
- 使用 Opera 瀏覽器 + 使用者 .js 腳本。
[编辑] 參見
[编辑] 外部連結
- (英文)Greasemonkey下載點
- (英文)iMacros下載點
- (英文)Greasemonkey 官方站
- (英文)Greasemonkey 維基
- (英文)一頭栽進 Greasemonkey,一本免費書籍教導Greasemonkey腳本撰寫,由 Mark Pilgrim 著作
- (英文)舊 Greasemonkey 腳本儲藏庫包括很多使用者為其個人需要撰寫,上傳併分享給大眾的腳本。
- (英文)userscripts.org(Greasemonkeyed.com為其前身)- 取代 dunck.us 的腳本倉庫。
- (英文)UserJS.org - 給 Opera 用的使用者腳本(其中許多也有 Greasemonkey 的格式)。
- (英文)Greasemonkey 禮節
- (英文)Greasemonkey 與其在商業模型的效果
- (英文)腳本編譯器 用來轉換 Greasemonkey 腳本成Mozilla附加元件。
- (英文)Greasemonkey 編譯器 轉換 Greasemonkey 使用者腳本成完整的 converts Greasemonkey Mozilla附加元件。
- (英文)給非技術人員的 Greasemonkey 解釋
- (英文)browserscripts.org 腳本社群。
- (英文)Greasemonkey 在企業 - 網誌系列,主題關注當使用 Greasemonkey 於IT專案時保全與發佈問題。
- (英文)InternetDuctTape.com - 安裝與使用 Greasemonkey 使用者腳本新手指南。
[编辑] 評論
- (英文)Festa, Paul.Firefox add-on lets surfers tweak sites, but is it safe?,CNET,2005年 3月24日.
- (英文)Singel, Ryan.Firefox Users Monkey With the Web?,Wired magazine,2005年 5月17日.


