Greasemonkey,簡稱GM,中文俗稱為“油猴子”,是Mozilla Firefox的一個附加組件。它讓用戶安裝一些腳本使大部分HTML為主的網頁於用戶端直接改變得更方便易用。隨著Greasemonkey腳本常駐於瀏覽器,每次隨著目的網頁打開而自動做修改,使得運行腳本的用戶印象深刻地享受其固定便利性。
Greasemonkey可替網頁加入些新功能、修正網頁錯誤、組合來自不同網頁的數據、或者數繁不及備載的其他功能。寫的好的Greasemonkey腳本甚至可讓其輸出與被修改的頁面集成得天衣無縫,像是原本網頁里的一部分。
基本介紹
- 外文名:Greasemonkey
- 簡稱:GM
- 俗稱:油猴子
- 類型:附加組件
名詞介紹,技術明細,腳本,問題,相容性,類似軟體,其他選擇,
名詞介紹
Greasemonkey可替網頁加入些新功能(例如在亞馬遜書店嵌入商品比價功能)、修正網頁錯誤、組合來自不同網頁的資料、或者數繁不及備載的其他功能。寫得好的Greasemonkey腳本甚至可讓其輸出與被修改的頁面整合得天衣無縫,像是原本網頁里的一部分。
技術明細
大部分Greasemonkey使用者腳本都是自行撰寫,使用對某網站專用的JavaScript代碼,透過文檔對象模型(DOM)接口對網頁內容做操作。維護了個 Greasemonkey 資料庫。該資料庫描述哪個網址網頁對應到哪個腳本。(注意:廢棄腳本倉庫 可能還保留許多還沒合併到新倉庫)。當使用者載入匹配的網頁,Greasemonkey便呼叫相關的腳本,而該腳本便為該頁加入輸出結果、刪除該頁的部分、或者移動礙眼的部分。Greasemonkey腳本亦能透過非網域綁定的XMLHTTP要求來查詢外部HTTP資源。Greasemonkey亦遵循某使用者名.user.js 的格式,這讓當該特定使用者拜訪時 Greasemonkey 可自動偵測並提供安裝選項。除了JavaScript代碼,Greasemonkey腳本包括有限可選用後資料集。該後資料集描述了腳本名稱、腳本描述、網址用來區分同名腳本的位址空間、以及原本該腳本為哪些網址撰寫的列表。
Greasmonkey腳本寫作過程要求高技術 (雖然比起寫個五臟俱全的Firefox擴展簡單點)。這意味著非常少的一般使用者可以實際上撰寫 Greasemonkey 擴展。不過,Platypus 擴展可讓使用者可以編輯網頁 (刪除或者移動某礙眼的部分)。Platypus隨後將結果存成常駐的Greasemonkey腳本。
腳本
使用者群已發展下列的腳本:
* 調整Gmail讓Google Reader內嵌,因而提供RSS新聞訂閱的選項。
* 當線上瀏覽某本書時同時顯示對手網站同本書價錢。
* 去除來自某些站的廣告,包括彈出視窗與Google文字廣告。
* 改變網頁的版面,包括原本該網頁作者未考慮到的元素大小與瀏覽器畫面大小。
* 自動完成表單。
* 瀏覽某些布告欄網站自動過濾特定的發帖人。
* 增刪網頁上的某些功能。
* 讓使用者從某些視頻站點如Google Video以及YouTube存下FLV視頻檔案。
* 從現行網頁找尋任何RSS新聞訂閱,並將它們顯示在可擴展、漂浮於網頁上的面板里。
問題
許多Firefox社群的成員,以及相當多的技術分析師,警告Greasemonkey的使用泛濫,並且相關的使用者腳本技術需要在發布時更注意。他們的關注包括:
* 可能讓某些廣告網站沒生意做。許多Firefox使用者已經利用Adblock Plus屏閉掉網頁廣告,不過 Greasemonkey 可被用來換掉原本廣告主的廣告成為它競爭對手的廣告。這導致對網頁廣告人為灌水,或者愚弄被付費廣告商的統計程式。
* 增加網站每頁的垃圾流量。某些Greasemonkey腳本是設計來取得使用者拜訪哪些網頁的額外資訊,比如那些從 de、黑米、或者Bloglines提供的腳本。如果這些腳本被廣泛使用,它們有可能造成被拜訪網站不必要的額外流量。
* 隨著許多網頁專用的腳本激增,分別某網頁的問題是實際上網頁編程上的臭蟲,還是訪問者本地端Greasemonkey腳本的困難度也隨之增加。基於如此,抓蟲除錯更為麻煩。
*腳本錯誤大致肇因於Greasemonkey開發者與網站開發者缺乏互動。
* Greasemonkey 只有對 HTML 網頁有效,對 Flash, Flex, 以及 Silverlight 開發的網頁無效。
* 富網路程式 (Rich Internet Applications) 對 Greasemonkey腳本開發者來說比起靜態網頁更困難控制。這是因為該網頁程式執行越多的邏輯,Greasemonkey 作者得考慮得越複雜才不會打擾到原本程式的功能。
* 原本的網站開發者推出新版時會造成相對應 Greasemonkey腳本停止工作。因此,沒有與原本網站開發者互動而撰寫的 Greasemonkey腳本可能造福一時,但終非長遠之計。
相容性
其他Mozilla為基礎的瀏覽器
Greasemonkey可直接用於Firefox、Flock、與Epiphany。Epiphany Greasemonkey是Epiphany擴展包的一部分。然而,該擴展並不完全相容於2.15.1版,導因於某些Greasemonkey套用程式接口功能 (例如:GM_getValue) 不支援。此外,也有自訂版本的 SeaMonkey:。
Opera
Safari
Creammonkey 與 PithHelmet (共享軟體) 是Safari瀏覽器下類似的工具。
Konqueror
Konqueror 使用者腳本是一種給 KDE Konqueror 的網頁修改工具,其目的在相容於Greasemonkey腳本與後資料集。它以一種KPart而存在。
Chrome
Chrome原生支持安裝Greasemonkey腳本,但是不支持firefox Greasemonkey的自定義函式。
Internet Explorer
類似軟體
*Proxomitron, 開發於1990年代晚期,程式於 JavasScript 前載入並主動監視 HTTP 串流,因此它為跨瀏覽器相容,並且透過正則表達式相似的比對語言提供類似Greasemonkey 的功能。
* Proximodo受proximitron啟發並可相互操作;是一種開源軟體,客戶端代理伺服器所以允許對網頁內容動手腳。
* MouseHole是一種開源軟體,客戶端代理伺服器,允許對網頁內容透過Ruby動手腳。
* Monkeygrease 是一種JavaServlet可用來修改客戶端接收到之前的Java (著作權軟體) 網頁程式輸出。
* Chickenfoot 是一種 Firefox 的擴展用於讓終端使用者與黑客於網頁上腳本互動。
* 給 Firefox 用的iMacros是一種 Firefox 的擴展讓使用者紀錄並重播所謂“網際網路宏”,用來執行網頁自動化、分析網頁、以及測試網頁。
* Stylish 是一種 Firefox 的擴展透過改變用戶端的 CSS,進而改變網頁的編排。
* Bookmarklets 可以在任何網頁隨心所欲的執行 JavaScript,不過它需要使用者點擊啟用,而非自動執行。
* Firebug 是一種開發者擴展讓使用者隨心所欲的透過 DOM 即時改變網頁。
其他選擇
在沒有擴展像 Greasemonkey 的情況下,修改網站也可以透過下面幾種方式:
① 於網址列鍵入 javascript:,或者使用 bookmarklets。
②使用瀏覽器的 DOM 檢視器。
④ 使用 Opera瀏覽器+ user .js腳本。