您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Block ads on Wowhead.com using Adblock Plus rules(2024-07-18 Updated)
// ==UserScript== // @name Wowhead Ad Blocker // @namespace http://tampermonkey.net/ // @version 0.4 // @description Block ads on Wowhead.com using Adblock Plus rules(2024-07-18 Updated) // @author Bing Ma // @match https://www.wowhead.com/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Function to remove elements by selector function removeElementsBySelector(selector) { let elements = document.querySelectorAll(selector); elements.forEach(element => element.remove()); } // Function to hide elements by selector function hideElementsBySelector(selector) { let elements = document.querySelectorAll(selector); elements.forEach(element => { element.style.setProperty('display', 'none', 'important'); }); } // List of ad selectors to block (from your Adblock Plus rules) const adSelectors = [ 'DIV[class="blocks"]', 'DIV[class="sidebar-wrapper"]', 'DIV[class="zaf-unit-wrapper"]', 'DIV[class="pb-stream"]' ]; // Run the ad blocker on page load window.addEventListener('load', () => { adSelectors.forEach(selector => { removeElementsBySelector(selector); hideElementsBySelector(selector); }); }); // Run the ad blocker periodically to catch dynamically loaded ads setInterval(() => { adSelectors.forEach(selector => { removeElementsBySelector(selector); hideElementsBySelector(selector); }); }, 1000); // Mutation observer to catch ads added dynamically const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { mutation.addedNodes.forEach((node) => { if (node.nodeType === 1) { // Ensure it's an element adSelectors.forEach(selector => { if (node.matches(selector) || node.querySelector(selector)) { node.remove(); } }); } }); }); }); // Start observing the document for added nodes observer.observe(document.body, { childList: true, subtree: true }); })();