<aside> 💡 目录(温馨提示: ⌘ + ⌥ + T 展开/折叠全部内容)


</aside>

油猴脚本:是什么、能干嘛?

油猴脚本,正式的叫法是用户脚本(user script)。之所以叫做「油猴」,是因为第一个制作这个浏览器扩展的作者 Aaron Boodman 起名叫做 Greasymonkey,中文直译就是「油腻的猴子」;后面其他脚本开发的时候,基本都在沿用 Greasymonkey 的一些基本规范,这些脚本也就统称为「油猴脚本」了。

你可以将油猴脚本理解为一种可以根据我们的实际需求,为网页「加料」的手段。

Chrome 插件 vs. Userscript 油猴脚本

<aside> 💡 https://search.arc.net/68USIHuMBTl49i6MV2AG

同样一个需求,如果浏览器扩展和油猴脚本都能实现,我们应该如何选择?

一方面,浏览器扩展相比用户脚本诞生的时间其实更晚,各家的浏览器扩展后发制人,的确也有了比油猴脚本强得多的功能实现;

但另一方面,虽然脚本能力有限,但是它们占用的系统资源和内存又更少一点。

另外,从安全性角度上来说,油猴脚本虽然也爆出过不少窃取个人信息、替换返利链接甚至挖矿的负面新闻,但油猴脚本的源代码审查相比浏览器扩展更为直接透明,选择合适的油猴脚本获取渠道、留意脚本的权限请求,有基础的用户也可以多多留意、检查脚本内容,一般就能规避大部分风险。

因此我自己的解决方案是,对于轻量一些的场景,通过用户脚本+用户样式(user style)解决大部分浏览需求,重一些的场景则会选择浏览器扩展。

当然了,如果你的设备对保密性和安全等级有着较高的要求,我还是不建议你安装任何第三方油猴脚本。

油猴脚本原理浅析

如果要用严谨一点的定义来说,油猴脚本其实是一种注入式的 JavaScript 程序,在网页本身的程序之外,通过一些手段,将用户需要的数据和逻辑注入到当前的网页中,达到修改界面、增加功能等等的目的。

换句话说油猴脚本也是 JavaScript。JavaScript 能实现的能力,油猴脚本基本也能做,比如操作页面元素,可以给页面中增加、删减、修改页面元素,最常见的去广告脚本就是这么实现的。

不过油猴脚本能提供一些普通 JavaScript 实现不了的能力。Greasymonkey 在最早的 0.25 版本中就带来了两个基本的功能:

<aside> 💡

除了这两个功能之外,目前的油猴脚本,大多采用了 Greasemonkey 制定的 V4 API 规范。通过这个规范,我们就能知道用户脚本可以做什么了。

</aside>

脚本管理器

绝大部分情况下我都推荐 Tampermonkey

另外,https://github.com/scriptscat/scriptcat 脚本猫,一个国产开源可以执行用户脚本的浏览器扩展。

万物皆可脚本化,让你的浏览器可以做更多的事情!

脚本源