示例

// ==UserScript==
// @name         Hello
// @namespace    http://tampermonkey.net/hello
// @version      0.1
// @description  try to take over the world!
// @author       You Name
// @match        https://zhihu.com/*
// @match        https://juejin.cn/*
// @grant        GM_log
// ==/UserScript==

(function() {
    'use strict';
    GM_log("Hello World");
})();

一个标准的 UserScript 由头部和核心逻辑两部分组成。头部的注释有特定的格式,也被称之为 Metadata Block。它用于描述这个脚本,通常包括脚本名、名称空间、版本和描述等信息,还有

历史

从 API 的前缀 GM_ 可以知道,油猴最早指的是 Greasemonkey。这只油猴子是 Firefox 的一个附加组件,据说是谷歌员工不务正业时开发的。因为功能强大,所以油猴子很快被人推广到了其它的浏览器上,就有了谷歌 Chrome 浏览器上的 Tampermonkey 以及遨游浏览器上的 Violentmonkey,再后来 Tampermonkey 和 Violentmonkey 都支持多浏览器平台了。

开始制作自己的 UserScript

想要制作一个自己的 UserScript,需要事先掌握 JavaScript ,然后在这个基础上了解油猴提供的 API 和文件头写法。

有一个脚手架工具可以创建油猴项目,解决下面这些问题

  • 怎么同步到远程仓库,怎么做代码分发
  • 如果要用到新语法,怎么保证跨浏览器兼容性
  • 如果代码越写越多,没有模块化怎么管理
  • 没有 TS,很难保证长期维护

唯一的问题是长期没有更新了。

Greasy Fork - 安全、实用的用户脚本大全 是油猴脚本的发布平台

https://openuserjs.org/ 是另一个 Userscript 发布平台

参考文档