您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes unnecessary elements from fandom website, leaving only what's important.
当前为
// ==UserScript== // @grant none // @version 1.0.0 // @author eye-wave // @icon https://raw.githubusercontent.com/eye-wave/greasy-fork/main/packages/fandom-debloat/assets/icon.svg // @license GPL-3.0+ // @name fandom.com - Remove bloatware // @namespace fandom.com utils // @match https://*.fandom.com/* // @description Removes unnecessary elements from fandom website, leaving only what's important. // ==/UserScript== // ../../utils/src/index.ts function $(query) { return document.querySelectorAll(query); } function $s(query) { return document.querySelector(query); } // src/window.js window.ads = void 0; // src/index.ts var toResize = [".fandom-community-header__background", ".main-container"]; var massRemove = ["iframe", "link[as='script']", "meta", "script", "style:not([type='text/css'])"]; var removeListSingle = [ ".bottom-ads-container", ".fandom-sticky-header", ".global-navigation", ".global-registration-buttons", ".notifications-placeholder", ".page__right-rail", ".page-side-tools", ".right-rail-wrapper", ".top-ads-container", ".unified-search__layout__right-rail", "#age-gate", "#featured-video__player-container", "#global-explore-navigation", "#p-views", "#WikiaBar", "body > svg + *", "div>div[data-tracking-opt-in-overlay]", "footer" ]; removeBloatware(); function removeBloatware() { removeListSingle.forEach((q) => $s(q)?.remove()); massRemove.forEach((q) => $(q).forEach((e) => e?.remove())); toResize.forEach((q) => $s(q)?.setAttribute("style", "width:100%;margin:0")); } removeExcessiveBodyClassNames(); function removeExcessiveBodyClassNames() { for (const c of document.body.classList) { if (c.includes("skin-fandom")) continue; document.body.classList.remove(c); } } function removeExcessiveHtmlAttrs() { document.documentElement.removeAttribute("class"); document.documentElement.removeAttribute("dir"); document.documentElement.removeAttribute("style"); } new MutationObserver((mutationsList) => { for (const mutation of mutationsList) { if (mutation.type === "childList") removeBloatware(); if (mutation.type === "attributes") { removeExcessiveBodyClassNames(); removeExcessiveHtmlAttrs(); } } }).observe(document.documentElement, { childList: true, subtree: true, attributes: true, attributeOldValue: true });