如何编写一个油猴脚本

Posted on Wed, 25 Dec 2024 10:36:10 +0800 by LiangMingJian


什么是油猴(Tampermonkey)

Tampermonkey 是最为流行的用户脚本管理器扩展,它适用于 Chrome,Microsoft Edge,Firefox 等主流浏览器。

用户可以通过 Tampermonkey 为网站编写额外的 javascript 脚本,实现如改变网站样式,隐藏广告,新增按钮等功能。

如何安装油猴(Tampermonkey)

  • 前往官网获取, Tampermonkey
  • 在各浏览器的扩展商店中搜索 Tampermonkey

编写用户脚本(User Script)

Tampermonkey 的用户脚本主要包括两个部分,开头的元数据单元 ==UserScript== 和用户代码部分 (function(){})。

元数据单元是被 ==UserScript== 包裹的一堆数据,这些数据必须写在用户脚本的开头,是用来向 Tampermonkey 描述脚本信息或加载拓展功能的重要标志。

// ==UserScript==
// @name         编写的脚本名称
// @namespace    命名空间;用来区分名称相同但是作者不同的用户脚本
// @version      0.1;版本号
// @description  功能描述
// @author       作者
// @match        脚本匹配的网址,支持通配符匹配
// @exclude      排除匹配到的网址,优先于 include
// @icon         脚本的图标
// @grant        none 禁用沙盒,使脚本直接在上下文运行
// ==/UserScript==

用户代码部分是用户为网页定制的内容,该部分被函数 (function(){ ... })() 所包裹,函数内的内容会在网站加载后立即执行。

用户代码支持 javascript 语法,用户可以像开发网站一样通过 javascript 为网站添加功能,修改界面,改变样式。

(function() {
    // Your code here...
})();

一个扩展的示例

为所有网站的右下角添加一个悬浮按钮,点击该悬浮按钮后,可以回到网页顶部。

// ==UserScript==
// @name         回到顶部
// @namespace    ——————
// @version      1.0
// @description  在所有网页右下角添加一个悬浮按钮,点击后回到顶部
// @author       ——————
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    // 创建按钮样式
    const style = document.createElement('style');
    style.innerHTML = `
        #floating-button {
            position: fixed;
            bottom: 30px;
            left: 30px;
            width: 50px;
            height: 50px;
            background-color: #272626;
            color: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 30px;
            font-weight: bold;
            cursor: pointer;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
            transition: all 0.3s ease;
            z-index: 10000;
        }
        #floating-button:hover {
            transform: scale(1.1);
            background-color: #000000;
        }
    `;
    document.head.appendChild(style);

    // 创建按钮元素
    const button = document.createElement('div');
    button.id = 'floating-button';
    button.innerText = '⬆';
    button.title = '回到顶部'; // 鼠标悬停提示文字

    // 插入到页面中
    document.body.appendChild(button);

    // 添加点击事件
    button.addEventListener('click', () => {
        window.scrollTo({ top: 0, behavior: 'smooth' });
    });
    
})();

拓展阅读:新版本浏览器的启动问题

在基于 Chrome 的浏览器中使用 Tampermonkey 扩展(版本 5.3+)时,用户必须开启【允许用户脚本】这一选项来让浏览器正确加载扩展。

以 Edge 为例,打开 chrome://extensions 或 edge://extensions,启用开发者模式的同时,点击拓展的详细信息,启用允许用户脚本。

————————————

更多: Tampermonkey • 文档