您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Advanced Adblock protector with invasive shit blocking
当前为
// ==UserScript== // @name Adblock Protector // @name:uk Захисник Adblock // @name:de Adblock Protector // @name:fr Adblock Protector // @name:es Adblock Protector // @name:et Adblock Protector // @name:it Adblock Protector // @version 1.3 // @description Advanced Adblock protector with invasive shit blocking // @description:uk Adblock Protector. Захищає від стеження та обходу блокувальників реклами // @description:de Fortschrittlicher Adblock-Schutz mit invasivem Scheiß-Blockieren // @description:fr Protecteur Adblock avancé avec blocage de merde invasive // @description:es Protector Adblock avanzado con bloqueo de mierda invasiva // @description:et Täiustatud Adblocki kaitse invasivse jama blokeerimisega // @description:it Protettore Adblock avanzato con blocco di merda invasiva // @match *://*/* // @grant none // @run-at document-start // @noframes // @namespace https://gf.qytechs.cn/users/1451793 // ==/UserScript== /* Configuration Object */ var config = { blockingLevel: 2, // 1-3 (1=yandex, 2=+RU companies, 3=nuclear) aggressiveness: 2, // 1-3 (1=reqs, 2=+scripts, 3=all elements) advancedProtection: 1, // 0-1 (external scripts) proactiveDefense: true, // Active bypass prevention sanitizeInterval: 2000 // DOM cleanup interval }; /* Domain Patterns */ var domainPatterns = { yandex: ['ya.*', 'yandex.*', 'yastatic.*'], ruCompanies: ['mail.ru', 'zen.ru', 'vk.ru', 'vk.com', 'ok.ru'], nuclear: ['*.ru', '*.by', '*.рф', '*.su'] }; (function() { 'use strict'; // Build blocked domains array var blockedDomains = domainPatterns.yandex.slice(); if (config.blockingLevel >= 2) blockedDomains.push.apply(blockedDomains, domainPatterns.ruCompanies); if (config.blockingLevel >= 3) blockedDomains.push.apply(blockedDomains, domainPatterns.nuclear); // Create regex patterns var domainRegexes = blockedDomains.map(function(pattern) { var base = pattern .replace(/\./g, '\\.') .replace(/\*/g, '.*'); return [ new RegExp('^(https?|wss?)://([a-z0-9-]+\\.)*' + base), new RegExp('//([a-z0-9-]+\\.)*' + base), new RegExp('([a-z0-9-]+\\.)*' + base + '/', 'i') ]; }).reduce(function(acc, val) { return acc.concat(val); }, []); // Block check function function isBlocked(url) { try { var cleanUrl = decodeURIComponent(url).toLowerCase(); return domainRegexes.some(function(regex) { return regex.test(cleanUrl); }); } catch(e) { return domainRegexes.some(function(regex) { return regex.test(url.toLowerCase()); }); } } // Network blocking var nativeFetch = window.fetch; window.fetch = function(input, init) { var url = (typeof input === 'string') ? input : input.url; return isBlocked(url) ? new Response(null, { status: 403 }) : nativeFetch.call(window, input, init); }; var originalOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(method, url) { if (isBlocked(url)) { console.warn('Blocked XHR:', url); this.abort(); return; } originalOpen.apply(this, arguments); }; // DOM cleaning function sanitizeDOM() { var elements = document.querySelectorAll( 'script, iframe, img, link, embed, object, source' ); Array.prototype.forEach.call(elements, function(element) { var sources = [ element.src, element.href, element.dataset && element.dataset.src, element.srcset ].filter(Boolean); if (sources.some(isBlocked)) { if (element.parentNode) { element.parentNode.removeChild(element); } } }); } // Mutation observer var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { Array.prototype.forEach.call(mutation.addedNodes, function(node) { if (node.nodeType === 1 && (node.src || node.href)) { if (isBlocked(node.src || node.href)) { node.parentNode && node.parentNode.removeChild(node); } } }); }); if (config.aggressiveness >= 2) sanitizeDOM(); }); observer.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: ['src', 'href', 'data-src'] }); // External scripts if (config.advancedProtection) { [ 'https://userscripts.adtidy.org/release/popup-blocker/2.5/popupblocker.user.js', 'https://userscripts.adtidy.org/release/adguard-extra/1.0/adguard-extra.user.js', 'https://cdn.jsdelivr.net/npm/@list-kr/tinyshield@latest/dist/tinyShield.user.js' ].forEach(function(src) { var script = document.createElement('script'); script.src = src; document.head.appendChild(script); }); } // Proactive defense if (config.proactiveDefense) { setInterval(sanitizeDOM, config.sanitizeInterval); Object.defineProperty(window, 'fetch', { value: window.fetch, writable: false, configurable: false }); } console.info('Domain Blocker active - Level ' + config.blockingLevel); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址