Greasemonkey
原作者 | Aaron Boodman |
---|---|
开发者 | Anthony Lieuallen、Johan Sundström[1]及其他13人[2] |
首次发布 | 2005年3月28日[3] |
当前版本 | 4.11(2021年1月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的猴头图标背景就会变为彩色的。右键点击猴头图标,最上面一行就是打开当前网站可用脚本列表的选项。
- Platypus(platypus
.mozdev .org)附加组件可让用户可以编辑网页(删除或者移动某碍眼的部分)。Platypus随后将结果存成常驻的Greasemonkey脚本。[永久失效链接]
典型的脚本
[编辑]用户组已发展大量的脚本,以下是其中的一些应用:
- 调整Gmail让Google Reader内嵌,因而提供RSS新闻订阅的选项。
- 当在线浏览某本书时同时显示对手网站同本书价钱。
- 去除来自某些站的广告,包括弹出视窗与Google文字广告。
- 改变网页的版面,包括原本该网页作者未考虑到的元素大小与浏览器画面大小。
- 自动完成窗体。
- 浏览某些布告栏网站自动过滤特定的发帖人。
- 增删网页上的某些功能。
- 让用户从某些影片站点如Google Video以及YouTube存下FLV或MP4视频档案。
- 从现行网页找寻任何RSS新闻订阅,并将它们显示在可扩展、漂浮于网页上的面板里。
- 将百度贴吧输入框里的文字转换为图片发表,或者在发贴时自动附加指定语句(俗称“小尾巴”)。
随用户脚本引发之技术、操作、及道德上的问题
[编辑]许多Firefox社群的成员,以及相当多的技术分析师,警告Greasemonkey的使用泛滥,并且相关的用户脚本技术需要在发布时更注意。他们的关注包括:
- 可能让某些广告网站生意受阻。许多Firefox用户已经利用Adblock Plus屏闭掉网页广告,不过Greasemonkey可被用来换掉原广告主的广告成为它竞争对手的广告。这导致对网页广告人为灌水,或者戏弄被付费广告商的统计程序。
- 增加网站每页的垃圾流量。某些Greasemonkey脚本是设计来获取用户拜访哪些网页的额外信息,比如那些从del.icio.us、黑米、或者Bloglines提供的脚本。如果这些脚本被广泛使用,它们有可能造成被拜访网站不必要的额外流量。
- 随着许多网页专用的脚本激增,分辨某网页的问题是实际上网页编程上的BUG,还是访问者本地端Greasemonkey脚本的困难度也随之增加。基于如此,抓虫调试更为麻烦。
- 脚本错误大致肇因于Greasemonkey开发者与网站开发者缺乏交互。
- Greasemonkey只有对HTML网页有效,对于Flash、Flex,以及Silverlight开发的网页无效。
- 丰富互联网应用程序对Greasemonkey脚本开发者来说比静态网页更困难控制。这是因为该网页程序执行越多的逻辑,Greasemonkey作者得考虑得越复杂才不会打扰到原本程序的功能。
- 原本的网站开发者推出新版时会造成相对应Greasemonkey脚本停止工作。因此,没有与原本网站开发者交互而撰写的Greasemonkey脚本可能在一时发挥作用,但终非长远之计。
Greasemonkey与其它浏览器的兼容性与相等软件
[编辑]其他Mozilla为基础的浏览器
[编辑]Greasemonkey可直接用于Firefox、Flock、与Epiphany。Epiphany Greasemonkey是Epiphany附加组件包的一部分。然而,该附加组件并不完全兼容于2.15.1版,导因于某些Greasemonkey应用程序接口功能(例如:GM_getValue)不支持。此外,也有自定义版本的SeaMonkey:xsidebar
Opera
[编辑]Opera第8版也增加了用户脚本功能Archive.is的存档,存档日期2012-09-10。随着Opera与Firefox支持W3C文档对象模型(DOM),许多Greasemonkey用户脚本现在在Opera下执行正确。
Konqueror
[编辑]Konqueror用户脚本 (页面存档备份,存于互联网档案馆)是一种给KDE Konqueror的网页修改工具,其目的在兼容于Greasemonkey脚本与后资料集。它以一种KPart而存在。
类似软件
[编辑]- Scriptish具备和Greasemonkey一样的作用,所有Greasemonkey脚本都能在Scriptish中运行。Scriptish源于Greasemonkey,但对后者做了改进。[4]
- Proxomitron,开发于1990年代晚期,程序于JavaScript前加载并主动监视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脚本。
参见
[编辑]参考文献
[编辑]- ^ The weblog about Greasemonkey. [2010-12-28]. (原始内容存档于2013-06-25).
- ^ The greasemonkey network graph. [2010-12-28]. (原始内容存档于2019-09-11).
- ^ Initial Greasemonkey Release. [2010-12-28]. (原始内容存档于2021-01-19).
- ^ 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.
外部链接
[编辑]- Greasemonkey下载站点(自动本地化)
- (英文)Greasemonkey官方网站(页面存档备份,存于互联网档案馆)
- (英文)Greasemonkey Wiki (页面存档备份,存于互联网档案馆)
- (英文)Greasemonkey source code (页面存档备份,存于互联网档案馆)
- (英文)《一头栽进Greasemonkey(页面存档备份,存于互联网档案馆)》,一本用于教导Greasemonkey脚本撰写的免费书籍,由Mark Pilgrim著作
- (英文)旧Greasemonkey脚本储藏库包括很多用户为其个人需要撰写,上传并分享给大众的脚本。
- (英文)userscripts.org(Greasemonkeyed.com为其前身)- 取代dunck.us的脚本仓库。
- (英文)Greasefire[永久失效链接]必需配合“Greasmonkey”才能运作,因此安装“Greasefire”前得先安装“Greasmonkey”才行。安装完“Greasefire”后,只要所浏览的网页在“Userscripts.org”有可用的GM Script,“Greasmonkey”的猴子状态栏图标便会亮起来。
- (英文)Greasemonkey礼节Archive.is的存档,存档日期2005-04-12
- (英文)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日 [2007年10月24日]. (原始内容存档于2006年9月5日).
- (英文)Singel, Ryan. Firefox Users Monkey With the Web?. Wired magazine. 2005年5月17日 [2007年10月24日]. (原始内容存档于2008年9月6日).