当前位置:迷你笔记 » 技术 » 通过油猴脚本禁用特定网站弹框

通过油猴脚本禁用特定网站弹框

// ==UserScript==
    // @name         Disable General Overlay Popup
    // @namespace    http://tampermonkey.net/
    // @version      1.6
    // @description  Disables popups with specified IDs and classes on certain sites, including dynamically loaded elements
    // @author       Tek
    // @match        *://*.xxx.com/*
    // @grant        none
    // ==/UserScript==

    (function() {
        'use strict';

        // Define the IDs and classes as arrays
        const $hiddenid = ['overlay', 'popup', 'modal']; // Add your IDs here
        const $hiddenclass = ['popup-overlay', 'modal-dialog', 'ad-banner']; // Add your classes here

        // Function to hide elements by ID and class
        function hideElements(mutations = null) {
            // Hide elements by ID
            $hiddenid.forEach(id => {
                const elements = document.querySelectorAll(`[id="${id}"]`);
                elements.forEach(element => {
                    if (element.style.display !== 'none') {
                        element.style.display = 'none';
                        // console.log(`Hid element with id: ${id}`);
                    }
                });
            });

            // Hide elements by class
            $hiddenclass.forEach(className => {
                const elements = document.getElementsByClassName(className);
                Array.from(elements).forEach(element => {
                    if (element.style.display !== 'none') {
                        element.style.display = 'none';
                        // console.log(`Hid element with class: ${className}`);
                    }
                });
            });
        }

        // Run on page load
        window.addEventListener('load', () => {
            hideElements();
            // console.log('Initial check for elements on page load');
        });

        // Observe DOM changes for dynamically added elements
        const observer = new MutationObserver((mutations) => {
            hideElements(mutations);
        });

        // Start observing with optimized configuration
        observer.observe(document.body, {
            childList: true,
            subtree: true
        });

        // Ensure observer is disconnected when page unloads to prevent memory leaks
        window.addEventListener('unload', () => {
            observer.disconnect();
        });
    })();
未经允许不得转载:迷你笔记 » 通过油猴脚本禁用特定网站弹框

相关文章

评论 (0)

5 + 2 =