// ==UserScript== // @name ACT.Google.MO.Stay // @name:zh-CN ACT.谷歌.MO.Stay // @description Stay in web not app, Google Widget and APP Banner Remove. // @description:zh-CN 留在网络而非应用,移除谷歌微件和APP推广横幅。 // @author ACTCD // @version 20220722.1 // @license GPL-3.0-or-later // @namespace ACTCD/Userscripts // @supportURL https://github.com/ACTCD/Userscripts#contact // @homepageURL https://github.com/ACTCD/Userscripts // @match *://*.google.com/* // @match *://*.google.com.hk/* // @grant none // @inject-into content // @run-at document-start // @downloadURL https://update.greasyfork.icu/scripts/442024/ACTGoogleMOStay.user.js // @updateURL https://update.greasyfork.icu/scripts/442024/ACTGoogleMOStay.meta.js // ==/UserScript== (function () { "use strict"; function cleaner() { const careful_remove = (e) => !e || e.className == "main" || e.id == "gb-main" || e.remove() || console.info("REMOVE:", e); // Index - Bottom App Banner document.querySelectorAll("mobile-promo").forEach((e) => { // console.info('GOTCHA:', e); // DEBUG careful_remove(e.closest("body>div")); }); document.querySelectorAll("g-raised-button").forEach((e) => { if (e.textContent.includes("Try it") || e.textContent.includes("试用")) { // console.info('GOTCHA:', e); // DEBUG careful_remove(e.closest("body>div[style]")); } }); // Search - Bottom Widget Banner document.querySelectorAll("button").forEach((e) => { if (e.textContent == "Get the app" || e.textContent == "获取该应用") { // console.info('GOTCHA:', e); // DEBUG careful_remove(e.closest("body>div[id][style]")); } }); } new MutationObserver(cleaner).observe(document, { subtree: true, childList: true, }); function DOMContentLoaded() { cleaner(); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", DOMContentLoaded); } else { DOMContentLoaded(); } const style = document.createElement("style"); style.textContent = `/* Global style */ #center_col #taw { display: none !important; } /* AD */ #center_col #tads { display: none !important; } /* AD */ `; if (document.head) { document.head.append(style); } else { new MutationObserver((mutationList, observer) => { document.head && (observer.disconnect(), document.head.append(style)); }).observe(document, { subtree: true, childList: true }); } })();