跳至內容

Greasemonkey

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Greasemonkey
原作者Aaron Boodman
開發者Anthony Lieuallen、Johan Sundström[1]及其他13人[2]
首次發布2005年3月28日,​19年前​(2005-03-28[3]
當前版本4.11(2021年1月27日,​3年前​(2021-01-27
源代碼庫 編輯維基數據鏈接
編程語言JavaScript、XUL、CSS
操作系統跨平台
類型Mozilla擴充套件
許可協議MIT許可證
網站www.greasespot.net


Greasemonkey,簡稱GM,中文俗稱為「油猴」,是Firefox的一個附加元件。它讓使用者安裝一些腳本使大部分HTML為主的網頁於使用者端直接改變得更方便易用。

Greasemonkey可替網頁加入些新功能(例如在亞馬遜書店嵌入商品比價功能)、修正網頁錯誤、組合來自不同網頁的資料、或者數繁不及備載的其他功能。寫的好的Greasemonkey腳本甚至可讓其輸出與被修改的頁面整合得天衣無縫,像是原本網頁裡的一部分。

技術明細

[編輯]

大部分Greasemonkey使用者腳本都是自行撰寫,使用對某網站專用的JavaScript代碼,透過文檔對象模型(DOM)介面對網頁內容做操作。userscripts.org維護了個Greasemonkey資料庫。該資料庫描述哪個網址網頁對應到哪個腳本。(注意:廢棄腳本倉庫可能還保留許多還沒合併到新倉庫的腳本)。但由於userscripts.org在2014年5月發生技術故障而無法訪問,一些開發者另設網站以發布腳本,Greasemonkey官網也在其官方Wiki站點設立列表頁面存檔備份,存於網際網路檔案館)以展示這些網站。

當使用者載入匹配的網頁,Greasemonkey便呼叫相關的腳本,而該腳本便根據腳本內容改變網頁的內容。Greasemonkey腳本亦能透過非網域綁定的XMLHTTP要求來查詢外部HTTP資源。Greasemonkey亦遵循某使用者名.user.js的格式,這讓當該特定使用者拜訪時Greasemonkey可自動偵測並提供安裝選項。除了JavaScript代碼,Greasemonkey腳本包括有限可選用後資料集。該後資料集描述了腳本名稱、腳本描述、網址用來區分同名腳本的位址空間、以及原本該腳本為哪些網址撰寫的列表。

  • Greasefire擴展[永久失效連結]:同Greasemonkey擴展配合使用,自動顯示在userscripts.org的腳本庫中是否存在可以在當前正在瀏覽網站上使用的腳本,如果存在Greasemonkey的猴頭圖標背景就會變為彩色的。右鍵點擊猴頭圖標,最上面一行就是打開當前網站可用腳本列表的選項。
  • Platypusplatypus.mozdev.org)附加元件可讓使用者可以編輯網頁(刪除或者移動某礙眼的部分)。Platypus隨後將結果存成常駐的Greasemonkey腳本。[永久失效連結]

典型的腳本

[編輯]

使用者群已發展大量的腳本,以下是其中的一些應用:

  • 調整GmailGoogle Reader內嵌,因而提供RSS新聞訂閱的選項。
  • 當線上瀏覽某本書時同時顯示對手網站同本書價錢。
  • 去除來自某些站的廣告,包括彈出視窗與Google文字廣告
  • 改變網頁的版面,包括原本該網頁作者未考慮到的元素大小與瀏覽器畫面大小。
  • 自動完成表單。
  • 瀏覽某些佈告欄網站自動過濾特定的發帖人。
  • 增刪網頁上的某些功能。
  • 讓使用者從某些影片站點如Google Video以及YouTube存下FLVMP4影片檔案。
  • 從現行網頁找尋任何RSS新聞訂閱,並將它們顯示在可擴展、漂浮於網頁上的面板裡。
  • 百度貼吧輸入框裏的文字轉換為圖片發表,或者在發貼時自動附加指定語句(俗稱「小尾巴」)。

隨使用者腳本引發之技術、操作、及道德上的問題

[編輯]

許多Firefox社群的成員,以及相當多的技術分析師,警告Greasemonkey的使用氾濫,並且相關的使用者腳本技術需要在發佈時更注意。他們的關注包括:

  • 可能讓某些廣告網站生意受阻。許多Firefox使用者已經利用Adblock Plus屏閉掉網頁廣告,不過Greasemonkey可被用來換掉原廣告主的廣告成為它競爭對手的廣告。這導致對網頁廣告人為灌水,或者戲弄被付費廣告商的統計程式。
  • 增加網站每頁的垃圾流量。某些Greasemonkey腳本是設計來取得使用者拜訪哪些網頁的額外資訊,比如那些從del.icio.us、黑米、或者Bloglines提供的腳本。如果這些腳本被廣泛使用,它們有可能造成被拜訪網站不必要的額外流量。
  • 隨著許多網頁專用的腳本激增,分辨某網頁的問題是實際上網頁編程上的BUG,還是訪問者本地端Greasemonkey腳本的困難度也隨之增加。基於如此,抓蟲除錯更為麻煩。
  • 腳本錯誤大致肇因於Greasemonkey開發者與網站開發者缺乏互動。
  • Greasemonkey只有對HTML網頁有效,對於FlashFlex,以及Silverlight開發的網頁無效。
  • 多樣化網際網路應用程式對Greasemonkey腳本開發者來說比靜態網頁更困難控制。這是因為該網頁程式執行越多的邏輯,Greasemonkey作者得考慮得越複雜才不會打擾到原本程序的功能。
  • 原本的網站開發者推出新版時會造成相對應Greasemonkey腳本停止工作。因此,沒有與原本網站開發者互動而撰寫的Greasemonkey腳本可能在一時發揮作用,但終非長遠之計。

Greasemonkey與其它瀏覽器的相容性與相等軟體

[編輯]

其他Mozilla為基礎的瀏覽器

[編輯]

Greasemonkey可直接用於Firefox、Flock、與Epiphany。Epiphany Greasemonkey是Epiphany附加元件包的一部分。然而,該附加元件並不完全相容於2.15.1版,導因於某些Greasemonkey應用程式介面功能(例如:GM_getValue)不支援。此外,也有自訂版本的SeaMonkeyxsidebar.mozdev.org/modifiedmisc.html#greasemonkey

Opera

[編輯]

Opera第8版也增加了使用者腳本功能Archive.is存檔,存檔日期2012-09-10。隨著Opera與Firefox支援W3C文檔對象模型(DOM),許多Greasemonkey使用者腳本現在在Opera下執行正確。

Konqueror

[編輯]

Konqueror使用者腳本頁面存檔備份,存於網際網路檔案館)是一種給KDE Konqueror的網頁修改工具,其目的在相容於Greasemonkey腳本與後資料集。它以一種KPart而存在。

類似軟體

[編輯]

其他選擇

[編輯]

在沒有附加元件像Greasemonkey的情況下,修改網站也可以透過下面幾種方式:

  • 於網址列鍵入javascript:,或者使用bookmarklets
  • 使用瀏覽器的DOM檢視器。
  • 使用本地端HTTP代理伺服器,如WebWasherPrivoxyProxomitron以更改HTML。
  • 使用Opera瀏覽器 + 使用者.js腳本。

參見

[編輯]

參考文獻

[編輯]
  1. ^ The weblog about Greasemonkey. [2010-12-28]. (原始內容存檔於2013-06-25). 
  2. ^ The greasemonkey network graph. [2010-12-28]. (原始內容存檔於2019-09-11). 
  3. ^ Initial Greasemonkey Release. [2010-12-28]. (原始內容存檔於2021-01-19). 
  4. ^ scriptish wiki. [2012-07-03]. (原始內容存檔於2020-11-07) (英語). Scriptish is a fork of Greasemonkey, which is a Firefox extension and the first user script engine. Greasemonkey had long supported Firefox 1.5, and plenty of legacy code still existed. Furthermore, Greasemonkey needed a complete reorganization, and plenty of new features. But unfortunately, development of Greasemonkey is too slow. This is why Scriptish forked off Greasemonkey. 

外部連結

[編輯]

評論

[編輯]