Greasy Fork

Greasy Fork is available in English.

opgg去广告

去除opgg 英雄联盟,云顶之弈,无畏契约的左侧视屏广告

当前为 2024-09-14 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         opgg去广告
// @namespace    http://akiyamamio.online/
// @version      0.0.2
// @description  去除opgg 英雄联盟,云顶之弈,无畏契约的左侧视屏广告
// @author       alive
// @match        https://*.op.gg/*
// @icon         https://s-lol-web.op.gg/favicon.ico
// @license      MIT
// @grant        none
// @run-at       document-end
// ==/UserScript==

(function () {
    // 启用严格模式
    'use strict';

    var LOL_IDS = [
        "#opgg-video",
        "#primisPlayerContainerDiv",
        "#banner-container",
        "#opgg-kit-house-image-banner",
        ".vm-skin",
        ".vm-footer",
        ".eaw4xvd0",
        ".eaw4xvd1",
        ".eaw4xvd2",
        ".eaw4xvd3",
        ".eaw4xvd4",
        ".eaw4xvd5"
    ];
    var TFT_IDS = [
        "#vid-container0",
        "#video-tools-ad",
        ".css-13lit7a",
        ".desktop",
        ".css-1t8t0it"
    ];
    var V_IDS = [
        "#video-leaderboards-ad",
        "#video-stas-ad",
        "#video-crosshair-ad",
        "#video-agents-ad",
        "#video-weapons-ad",
        ".ad"
    ];

    // 合并所有ID数组
    var allIDS = LOL_IDS.concat(TFT_IDS, V_IDS);

    // 拼接选择器条件
    var selector = allIDS.map(id => `${id}`).join(', ');

    // 观察DOM并自动隐藏
    var observer = new MutationObserver(function (mutations) {
        mutations.forEach(function (mutation) {
            // 监控子节点的变化
            if (mutation.type === 'childList') {
                var elements = document.querySelectorAll(selector);
                elements.forEach(function (element) {
                    if (element && element.style.display !== 'none') {
                        element.style.display = 'none';
                        console.log("清除广告");
                    }
                });
            }
            // 监控属性(style)的变化
            if (mutation.type === 'attributes' && mutation.attributeName === 'style') {
                var element = mutation.target;
                if (element && element.matches(selector) && element.style.display !== 'none') {
                    element.style.display = 'none';
                    console.log("清除广告(style属性变化)");
                }
            }
        });
    });

    // 开始观察DOM的变化,除了childList和subtree,添加attributes属性监听
    observer.observe(document.body, {
        childList: true,        // 监听子元素的添加或删除
        subtree: true,          // 监听所有子节点
        attributes: true,       // 监听属性变化
        attributeFilter: ['style'] // 只监听`style`属性的变化
    });

})();