系列导航
TL;DR(快速上手)
- 普通用户脚本:一段直接运行的 JavaScript 代码,适合做轻量功能增强。
- 油猴脚本:带
// ==UserScript==元数据头,支持更多脚本管理能力与 GM API。 - 建议阅读顺序:简介 -> 普通脚本 -> 油猴脚本 -> API 参考 -> API 示例。
快速导航
什么是用户脚本?
用户脚本是一段用户自定义的 JavaScript 代码,它可以在页面加载的过程中自动运行,或者在满足某种特定条件后注入当前页面运行。通过用户脚本可以对原始网页进行功能增强,或者解除一些网页限制,从而让原网页拥有更好的用户体验。
用户脚本具有小巧,灵活,易用等特点,可以非常方便的扩展浏览器功能,不夸张的说只有你想不到没有做不到。一些常规的浏览器功能都可以通过用户脚本的形式实现,比如阅读模式、页面翻译、夜间模式等。
用户脚本的分类
根据用户脚本的特点我们可以把用户脚本大致分为两类,我们称之为普通用户脚本和油猴脚本。
普通用户脚本
普通用户脚本是一段原生的 JavaScript 代码,组织松散,不需要特定的开发规范,只要符合标准的 JavaScript 语法即可,具有小巧、灵活、易于上手的特点。
最简单的一段普通用户脚本可以写成下面这样。
alert("Hello World!"); |
油猴脚本
油猴起源于FireFox上的一个扩展Greasemonkey,后来又出现了支持范围更广,兼容性更好的Tampermonkey扩展,兼容这两种扩展的用户脚本我们统称为油猴脚本。
最简单的油猴脚本可以写成下面这样。
// ==UserScript== |
相比普通脚本,油猴脚本通常包含两部分:一部分是由元数据组成的文件头,另一部分是代码主体。元数据用于定义脚本的基本信息(版本、名称、依赖、资源、权限、运行时机等)。除此之外,脚本管理器还提供了一些高级 GM API 帮助开发者实现更高效便捷的开发。更多关于元数据和 API 的信息,请参见油猴脚本 API 参考。
常见问题(排错)
- 脚本没有生效:先确认脚本是否启用,以及脚本的作用域(普通脚本的自动执行域名/油猴脚本的
@match/@include/@exclude)是否覆盖当前网站。 - 脚本执行了但看不到效果:很多脚本会把输出写到控制台或页面元素中,不一定会弹窗。您可以先用
alert("Hello World!")这类最直观的方式验证执行链路。 - 只想在某些网站生效:优先用作用域限制(普通脚本的域名设置或油猴脚本元数据里的匹配规则),避免对所有网站都注入导致性能或兼容性问题。