Greasemonkey

Greasemonkey

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
Opera第8版也增加了使用者腳本功能。隨著Opera與Firefox支援W3C文檔對象模型(DOM),許多Greasemonkey使用者腳本在Opera下執行正確。
Safari
Creammonkey 與 PithHelmet (共享軟體) 是Safari瀏覽器下類似的工具。
Konqueror
Konqueror 使用者腳本是一種給 KDE Konqueror 的網頁修改工具,其目的在相容於Greasemonkey腳本與後資料集。它以一種KPart而存在。
Chrome
Chrome原生支持安裝Greasemonkey腳本,但是不支持firefox Greasemonkey的自定義函式。
Internet Explorer
在Internet Explorer下,IE7proiMacros、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代理伺服器,如WebWasherProxomitron以更改 HTML。
④ 使用 Opera瀏覽器+ user .js腳本。

相關詞條

熱門詞條

聯絡我們