浏览器插件开发


浏览器插件开发


篡改猴(油猴)

篡改猴 (Tampermonkey) https://www.tampermonkey.net

搜索:【玩的嗨】VIP工具箱

Greasy Fork 官网 https://greasyfork.org/zh-CN

Greasy Fork 源码 https://github.com/greasyfork-org/greasyfork

实例

在Gitee的消息中心中,有删除私信的功能,但没有删除通知的功能,看着这些杂七杂八的通知,有时候挺烦的,下面是Tampermonkey中隐藏通知内容的脚本:

// ==UserScript==
// @name         Gitee隐藏通知内容
// @namespace    https://gitee.com/
// @version      2024-12-07
// @description  隐藏Gitee消息中心的通知按钮和内容,避免看到烦乱消息
// @author       Me
// @match        https://gitee.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=gitee.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 删除头部栏中的消息中心按钮
    // 获取ID为notice-dropdown的元素
    var noticeDropdownElement = document.getElementById('notice-dropdown').remove();

    // 删除消息中心页的通知按钮
    // 获取ID为notice-app的元素
    var noticeAppElement = document.getElementById('notice-app');
    // 检查元素是否存在
    if (noticeAppElement) {
        // 在notice-app元素内部查找类名为notice-actionbar的元素
        var actionBarElements = noticeAppElement.getElementsByClassName('notice-actionbar');

        // 遍历所有找到的notice-actionbar元素
        for (var i = 0; i < actionBarElements.length; i++) {
            var actionBarElement = actionBarElements[i];

            // 在notice-actionbar元素内部查找所有的<a>标签
            var aTags = actionBarElement.getElementsByTagName('a');

            // 检查是否有至少两个<a>标签
            if (aTags.length >= 2) {
                // 移除第二个<a>标签(注意:getElementsByTagName返回的是类数组对象,索引从0开始)
                aTags[1].parentNode.removeChild(aTags[1]);

                // 如果你确定只需要移除第一个找到的notice-actionbar中的第二个<a>标签,
                // 那么在这里可以退出循环(如果你想要移除所有notice-actionbar中的第二个<a>标签,则不需要这一行)
                // break;
            }
        }
    }

    // 清空通知页面打开后里面的通知内容
    // 确保DOM完全加载
    window.addEventListener('load', function() {
        // 获取ID为notice-app的元素
        var noticeAppElement = document.getElementById('notice-app');
        // 检查元素是否存在
        if (noticeAppElement) {
            // 在notice-app元素内部查找同时拥有page和grid类的元素
            var elementsToClear = noticeAppElement.querySelectorAll('.page.grid');

            // 遍历这些元素并清空它们的HTML内容
            elementsToClear.forEach(function(element) {
                element.innerHTML = '';
            });
        }
    }, false);
})();

Google浏览器插件开发






参考资料


返回