您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Nukes Google Funding Choices completely – no overlays, no scroll lock, no adblock nag, no mercy.
// ==UserScript== // @name Arcade Punks - Kill Adblock Overlay & Scroll Lock // @namespace http://tampermonkey.net/ // @version 1.5 // @description Nukes Google Funding Choices completely – no overlays, no scroll lock, no adblock nag, no mercy. // @author You // @match https://www.arcadepunks.com/* // @grant none // ==/UserScript== (function () { 'use strict'; // Block ad-related APIs Object.defineProperty(window, 'fcSettings', { value: null, writable: false }); Object.defineProperty(window, '__tcfapi', { value: () => {}, writable: false }); Object.defineProperty(window, '__uspapi', { value: () => {}, writable: false }); // Block known Funding Choices and AdSense scripts const blockedScriptSrcs = [ 'https://fundingchoicesmessages.google.com/', 'https://pagead2.googlesyndication.com/' ]; const blockScripts = new MutationObserver((mutations) => { mutations.forEach(mutation => { mutation.addedNodes.forEach(node => { if (node.tagName === 'SCRIPT' && node.src) { blockedScriptSrcs.forEach(bad => { if (node.src.includes(bad)) { console.log('Blocked script:', node.src); node.remove(); } }); } }); }); }); blockScripts.observe(document.documentElement, { childList: true, subtree: true }); // Kill overlays and unlock scrolling const obliterateOverlay = () => { const selectors = [ '.fc-dialog-overlay', '.fc-dialog-container', '.fc-consent-root', '.fc-dialog', '.fc-ab-root', '#fc-focus-trap-pre-div', '#fc-focus-trap-post-div', '[id^="fc-consent-root"]', '#nEaWZEQVKinHfsN', '#RkugiDyPflsJS' ]; selectors.forEach(sel => { document.querySelectorAll(sel).forEach(el => { el.remove(); console.log('Removed element:', sel); }); }); // Restore scrolling ['html', 'body'].forEach(tag => { const el = document.querySelector(tag); if (el && el.style.overflow === 'hidden') { el.style.overflow = 'auto'; console.log('Scroll restored on', tag); } }); }; // Run cleanup repeatedly for 30 seconds const interval = setInterval(obliterateOverlay, 300); setTimeout(() => clearInterval(interval), 30000); })();