您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes ads and VPN shilling on Demonoid
// ==UserScript== // @name Demonoid remove clutter // @namespace jxq8p6u6r9wtn2f6617i // @match https://demonoid.is/* // @match https://www.demonoid.is/* // @match https://dnoid.pw/* // @match https://www.dnoid.pw/* // @match https://dnoid.to/* // @match https://www.dnoid.to/* // @grant none // @version 1.2.1 // @description Removes ads and VPN shilling on Demonoid // @run-at document-start // @inject-into content // @license MIT // ==/UserScript== (function () { "use strict"; const { HTMLUnknownElement } = window; function hide(element, state = true) { if (!element) { return; } element.hidden = state; if (state) { element.style.setProperty("display", "none", "important"); } else { element.style.removeProperty("display"); } } function inject(unwrap = (x)=>x, exporter = unwrap) { const proxyHandler = new window.Object(); proxyHandler.apply = exporter(function (write, that, args) { if (args[0]?.toLowerCase?.().indexOf?.("<script") === -1) { return write.apply(that, args); } }); const doc = unwrap(Document.prototype); doc.write = new window.Proxy(doc.write, proxyHandler); } let unsafeDoc = document; if (typeof globalThis.XPCNativeWrapper === "function") { inject(XPCNativeWrapper.unwrap, (f) => exportFunction(f, window)); // Why is the Firefox sandbox so weird unsafeDoc = XPCNativeWrapper.unwrap(unsafeDoc); } else { const script = document.createElement("script"); script.text = `"use strict";(${inject})();`; (document.head ?? document.documentElement).prepend(script); script.remove(); } hide(document.documentElement); const sheet = new CSSStyleSheet(); sheet.replace("#share-buttons,#downloadbox a:first-of-type,#downloadbox br:first-of-type,#rss_feed_link br,#rss_feed_link2 br,center a[href$='.php'] img[alt='']{display:none!important;}"); // Copy to unprivileged page scope array or this won't work in Firefox unsafeDoc.adoptedStyleSheets = window.Array.from([sheet].concat(document.adoptedStyleSheets)); window.addEventListener("DOMContentLoaded", () => { // Hide big VPN message let adElement = document.evaluate(".//*[contains(text(), 'Get VPN')]", document.body, null, XPathResult.ANY_UNORDERED_NODE_TYPE, null).singleNodeValue; while (adElement && !(adElement instanceof HTMLUnknownElement)) { adElement = adElement.parentNode; } if (adElement?.tagName) { for (const ad of document.getElementsByTagName(adElement.tagName)) { hide(ad); } } // Hide big black whitelist box adElement = document.evaluate(".//*[contains(text(), 'Ad-Blocker')]/ancestor-or-self::table", document.body, null, XPathResult.ANY_UNORDERED_NODE_TYPE, null).singleNodeValue; hide(adElement); hide(document.body.querySelector("td > hr + span")?.closest("tr")); // Sponsored Links box on torrent pages const btcNags = document.body.querySelectorAll("a[href^='bitcoin:']"); for (const nag of btcNags) { hide(nag.closest("span, p, div.block")); } }); window.addEventListener("DOMContentLoaded", hide.bind(null, document.documentElement, false)); })();