您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hide challenges results
// ==UserScript== // @name Geoguessr Hide Results // @namespace http://tampermonkey.net/ // @author BrainyGPT // @version 1.4 // @description Hide challenges results // @match https://www.geoguessr.com/* // @icon https://i.imgur.com/IG8yPEV.png // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; const TOPBAR_OVERLAY_ID = 'tampermonkey-blackout-overlay-topbar'; const FULLSCREEN_OVERLAY_ID = 'tampermonkey-blackout-overlay-fullscreen'; // ---------- Top Bar Overlay ---------- function createTopBarOverlay() { let overlay = document.getElementById(TOPBAR_OVERLAY_ID); if (!overlay) { overlay = document.createElement('div'); overlay.id = TOPBAR_OVERLAY_ID; Object.assign(overlay.style, { position: 'fixed', backgroundColor: 'black', zIndex: '4', // higher than top bar's 3 pointerEvents: 'none', }); document.body.appendChild(overlay); console.log('[Tampermonkey] Top bar black overlay created.'); } updateTopBarOverlayPosition(); } function updateTopBarOverlayPosition() { const overlay = document.getElementById(TOPBAR_OVERLAY_ID); const topBar = document.querySelector('[data-qa="result-view-top"]'); if (!overlay || !topBar) return; const rect = topBar.getBoundingClientRect(); Object.assign(overlay.style, { top: rect.top + 'px', left: rect.left + 'px', width: rect.width + 'px', height: rect.height + 'px', }); } function removeTopBarOverlay() { const overlay = document.getElementById(TOPBAR_OVERLAY_ID); if (overlay) { overlay.remove(); console.log('[Tampermonkey] Top bar black overlay removed.'); } } // ---------- Fullscreen Overlay ---------- function createFullscreenOverlay() { let overlay = document.getElementById(FULLSCREEN_OVERLAY_ID); if (!overlay) { overlay = document.createElement('div'); overlay.id = FULLSCREEN_OVERLAY_ID; Object.assign(overlay.style, { position: 'fixed', top: '0', left: '0', width: '100vw', height: '100vh', backgroundColor: 'black', zIndex: '99999', pointerEvents: 'none', }); document.body.appendChild(overlay); console.log('[Tampermonkey] Fullscreen black overlay created.'); } } function removeFullscreenOverlay() { const overlay = document.getElementById(FULLSCREEN_OVERLAY_ID); if (overlay) { overlay.remove(); console.log('[Tampermonkey] Fullscreen black overlay removed.'); } } // ---------- Elements to Remove ---------- const selectorsToRemove = [ '.round-result_pointsIndicatorWrapper__7JxD_', '.round-result_distanceIndicatorWrapper__qNO6y', '.status_section__RVR6u[data-qa="score"]', '.game-reactions_root__TSjX_', ]; function removeMatchingElements() { selectorsToRemove.forEach(selector => { document.querySelectorAll(selector).forEach(el => { el.remove(); console.log(`[Tampermonkey] Removed element matching: ${selector}`); }); }); } // ---------- Main Observer & Logic ---------- let mutationObserver = null; function checkURLAndManageOverlay() { const currentURL = window.location.href; const resultsUrlPrefix = 'https://www.geoguessr.com/results/'; const onResultsPage = currentURL.startsWith(resultsUrlPrefix); if (onResultsPage) { // Show fullscreen overlay, hide top bar overlay createFullscreenOverlay(); removeTopBarOverlay(); } else { // Hide fullscreen overlay, handle top bar overlay per results screen presence removeFullscreenOverlay(); const resultScreen = document.querySelector('.result-layout_root__fRPgH'); if (resultScreen) { createTopBarOverlay(); updateTopBarOverlayPosition(); } else { removeTopBarOverlay(); } } // Always remove unwanted elements removeMatchingElements(); } function startObserving() { if (mutationObserver) return; mutationObserver = new MutationObserver(() => { checkURLAndManageOverlay(); }); mutationObserver.observe(document.body, { childList: true, subtree: true }); } // Listen for history changes (single page app navigation) function listenToUrlChanges() { const pushState = history.pushState; history.pushState = function () { pushState.apply(this, arguments); setTimeout(checkURLAndManageOverlay, 50); }; window.addEventListener('popstate', () => { setTimeout(checkURLAndManageOverlay, 50); }); } // Resize handler for top bar overlay window.addEventListener('resize', () => { updateTopBarOverlayPosition(); }); // Initial removeMatchingElements(); checkURLAndManageOverlay(); startObserving(); listenToUrlChanges(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址