您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Stops Reddit from pushing you to use the mobile app.
// ==UserScript== // @name Reddit Mobile App Nag Remover // @description Stops Reddit from pushing you to use the mobile app. // @namespace Violentmonkey Scripts // @match https://*reddit.com/* // @grant none // @version 1.2.2 // @author Jupiter Liar // @description 2023-05-25 6:52 PM // @license Attribution CC BY // ==/UserScript== // Function to remove the nag popup element or XPromoPopupRpl element function removeNagPopup() { const nagPopup = document.querySelector('shreddit-experience-tree, .XPromoPopupRpl, .XPromoBlockingModalRpl, [class*="XPromo"]'); if (nagPopup) { nagPopup.style.display = 'none'; document.body.style.overflow = 'unset'; document.body.style.position = 'unset'; } } // Function to remove the nag bottom element or XPromoBottomBar element function removeNagBottom() { const navFrame = document.querySelector('.NavFrame'); if (navFrame) { const nagBottoms = navFrame.querySelectorAll('[bundlename="bottom_bar_xpromo"], .XPromoBottomBar'); nagBottoms.forEach(nagBottom => { nagBottom.style.display = 'none'; }); document.body.style.overflow = 'unset'; document.body.style.position = 'unset'; } } // Remove nag elements when the page has loaded window.addEventListener('load', function() { removeNagPopup(); removeNagBottom(); }); // Create a MutationObserver instance for nagPopup const popupObserver = new MutationObserver(function(mutationsList) { for (let mutation of mutationsList) { if (mutation.type === 'childList') { removeNagPopup(); break; } } }); // Start observing the body for changes related to nagPopup popupObserver.observe(document.body, { childList: true, subtree: true }); // Create a MutationObserver instance for nagBottom const bottomObserver = new MutationObserver(function(mutationsList) { for (let mutation of mutationsList) { if (mutation.type === 'childList') { removeNagBottom(); break; } } }); // Start observing the body for changes related to nagBottom bottomObserver.observe(document.body, { childList: true, subtree: true }); // Create a MutationObserver instance to monitor body's overflow property const overflowObserver = new MutationObserver(function(mutationsList) { for (let mutation of mutationsList) { if (mutation.type === 'attributes' && mutation.attributeName === 'style') { const bodyOverflow = document.body.style.overflow; if (bodyOverflow === 'hidden') { document.body.style.overflow = 'unset'; document.body.style.position = 'unset'; } break; } } }); // Start observing the body for changes related to overflow property overflowObserver.observe(document.body, { attributes: true }); // Detect and hide the element with bundlename="bottom_bar_xpromo" const bottomBarXpromo = document.querySelector('[bundlename="bottom_bar_xpromo"]'); if (bottomBarXpromo) { bottomBarXpromo.style.display = 'none'; }