您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes the promotion element and the "We had a server error..." banner
当前为
- // ==UserScript==
- // @name Reddit Enhancement
- // @namespace http://tampermonkey.net/
- // @version 1.0.5
- // @description Removes the promotion element and the "We had a server error..." banner
- // @author aspen138
- // @match *://www.reddit.com/*
- // @icon data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAQlBMVEVHcEz/RQD/RQD/QgD/RQD/RQD/RQD/RQD/RQD/RQD/////MgD/OgD/s5//z8P/a0T/5d3/VyH/iGr/qJP/mYD/+vcCA1U1AAAACnRSTlMAJP//y5WUn+ElsgVe0gAAAJFJREFUGJVtT1sOwyAMy0JpIa/C2t3/qjNQaT+zkMAmD5sIqLkwl1zpwcEPjsW3ScxMefv9m7u3WVNXdXJ9Q+BKGYRN+62miXmnMvg7WotT8SzE6ZQHHzkTL+HuIv2SKRTWkHCRC5eiJWOCSJvnNgzFWrtQ4iGuY+0wZt0jHFuWeVhPpmpwsf0PR/TaR/x9xv8CYoYGnu4Mr1kAAAAASUVORK5CYII=
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // Searches through all Shadow DOM roots
- function deepQuerySelectorAll(selector) {
- const nodes = [];
- function searchInNode(node) {
- if (node.shadowRoot) {
- const matches = node.shadowRoot.querySelectorAll(selector);
- if (matches.length > 0) {
- nodes.push(...matches);
- }
- Array.from(node.shadowRoot.children).forEach(searchInNode);
- }
- Array.from(node.children).forEach(searchInNode);
- }
- searchInNode(document);
- return nodes;
- }
- // Combined removal function for both error banners and promo elements
- function removeElements() {
- // Remove error banners
- const banners = deepQuerySelectorAll('div.banner.error');
- banners.forEach(banner => {
- banner.remove();
- console.log("Server Error Banner has been removed.");
- });
- // Remove promotional elements
- const promoSelectors = [
- 'a.w-100.block.h-100.cursor-pointer',
- 'shreddit-ad-post.promotedlink',
- 'shreddit-dynamic-ad-link',
- 'shreddit-comments-page-ad.promotedlink'
- ];
- promoSelectors.forEach(selector => {
- const promoElements = document.querySelectorAll(selector);
- promoElements.forEach(element => {
- element.remove();
- console.log('Promotion element removed:', selector);
- });
- });
- // Hide elements with specific rel attribute
- const links = document.querySelectorAll('a');
- links.forEach(link => {
- if (link.getAttribute('rel') === "noopener nofollow sponsored") {
- link.style.display = 'none';
- console.log('Link with rel "noopener nofollow sponsored" hidden');
- }
- });
- }
- // Single MutationObserver for all operations
- const observer = new MutationObserver(() => {
- removeElements();
- });
- // Start observing changes in the document
- observer.observe(document, {
- childList: true,
- subtree: true
- });
- // Wait for the page to load and perform initial cleanup
- if (document.readyState === 'loading') {
- window.addEventListener('load', removeElements);
- } else {
- removeElements();
- }
- })();