Removes the promotion element from the page
当前为
// ==UserScript==
// @name Remove Promotion Element at Reddit Site
// @namespace http://tampermonkey.net/
// @version 1.0.3
// @description Removes the promotion element from the page
// @author aspen138
// @match *://www.reddit.com/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// Wait for the page to load fully
window.addEventListener('load', function() {
// Select the promotion element using multiple possible classes or tags
const promoSelectors = [
'a.w-100.block.h-100.cursor-pointer',
'shreddit-ad-post.promotedlink',
'shreddit-dynamic-ad-link',
'shreddit-comments-page-ad.promotedlink' // Added new selector
];
// Function to remove elements matching selectors
function removePromoElements() {
promoSelectors.forEach(selector => {
const promoElements = document.querySelectorAll(selector);
promoElements.forEach(element => {
element.remove();
console.log('Promotion element removed:', selector);
});
});
}
// Function to hide elements with a specific rel attribute value
function hideElementsWithRel() {
// Select all links on the page
const links = document.querySelectorAll('a');
// Iterate through all links
links.forEach(link => {
// Check if the rel attribute matches "noopener nofollow sponsored"
if (link.getAttribute('rel') === "noopener nofollow sponsored") {
// Hide the element
link.style.display = 'none';
console.log('Link with rel "noopener nofollow sponsored" hidden');
}
});
}
// Initial run of both functions
removePromoElements();
hideElementsWithRel();
// Optional: Set up a MutationObserver to handle dynamically loaded content
const observer = new MutationObserver(function(mutations) {
removePromoElements();
hideElementsWithRel();
});
// Start observing the document with the configured parameters
observer.observe(document.body, {
childList: true,
subtree: true
});
});
})();