kmAd css重构

隐藏广告并优化性能

当前为 2025-03-11 提交的版本,查看 最新版本

// ==UserScript==
// @name         kmAd css重构
// @namespace    http://tampermonkey.net/
// @version      1.01
// @description  隐藏广告并优化性能
// @author       Musashi
// @match        https://4b55n57.xyz/km/*
// @match        https://km.ygking.site/km/*
// @match        https://kmvip.pages.dev/km/*
// @match        https://kmsvip.pages.dev/km/km/km/km/km/km/*
// @match        https://kmcdn.pages.dev/km/km/km/km/km/*
// @match        http://23.225.181.59/km/km/km/km/*
// @match        https://24y2if5.xyz/km/km/km/*
// @match        https://i4433b6.xyz/km/km/*
// @match        https://kmsvip.xyz/km/*
// @grant        GM_addStyle
// ==/UserScript==

(function() {
    'use strict';

    // 监听 URL 变化的函数
    function observeURLChange(callback) {
        let oldHref = location.href;
        const body = document.querySelector("body");
        const observer = new MutationObserver(() => {
            if (location.href !== oldHref) {
                oldHref = location.href;
                callback(); // 重新应用 CSS
            }
        });
        observer.observe(body, { childList: true, subtree: true });
    }

    // **根据当前页面选择不同的 CSS 规则**
    function applyAdBlockCSS() {
        // **移除之前的 CSS,防止重复注入**
        const oldStyle = document.getElementById("adBlockStyle");
        if (oldStyle) {
            oldStyle.remove();
        }

        let cssRules = "";

        if (window.location.href.includes("/login")) {
            console.log("当前为登录页面,避免隐藏关键 UI 组件,仅去除广告。");
            cssRules = `
                /* 仅隐藏广告,不隐藏登录 UI */
                img[src*="ad.xmmnsd.com"] {
                    display: none !important;
                }
                div.vip_ad {
                    display: none !important;
                }
            `;
        } else {
            console.log("当前为主页面,正常去广告。");
            cssRules = `
                /* 隐藏所有包含广告图像的 img 标签 */
                img[src*="ad.xmmnsd.com"],
                img[src="static/img/ttab.254a0d02.png"],
                img[src="static/img/collectdesktop.ff055cee.png"] {
                    display: none !important;
                }

                /* 隐藏广告相关的层和通知条 */
                div.van-overlay,
                div.van-notice-bar[role="alert"],
                div.vip_ad {
                    display: none !important;
                }

                /* 隐藏下载按钮 */
                div.download {
                    display: none !important;
                }

                /* 隐藏广告图片列表,并去除空白区域 */
                ul.g-list img,
                ul.g-list li {
                    display: none !important;
                    height: 0 !important;
                    margin: 0 !important;
                    padding: 0 !important;
                }

                /* 隐藏包含下载链接的 foot-box 元素 */
                ul.foot-box {
                    display: none !important;
                }
            `;
        }

        // **创建新的 CSS 样式并注入**
        const styleElement = document.createElement("style");
        styleElement.id = "adBlockStyle";
        styleElement.textContent = cssRules;
        document.head.appendChild(styleElement);
    }

    // **首次执行去广告**
    applyAdBlockCSS();

    // **监听 URL 变化,确保广告不会重新出现**
    observeURLChange(() => {
        console.log("URL 变化,重新应用去广告规则");
        applyAdBlockCSS();
    });
})();