Geoguessr Better Menu

Adds a menu bar to Geoguessr's new UI

目前為 2022-12-15 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Geoguessr Better Menu
// @namespace    https://gf.qytechs.cn/en/users/997484-aimee4737
// @version      1.2
// @description  Adds a menu bar to Geoguessr's new UI
// @author       aimee
// @match        https://www.geoguessr.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=geoguessr.com
// @grant        none
// @license      MIT
// ==/UserScript==

// edit line 34 for custom menu items

window.addEventListener("load", function() {

    const start = `<div class="slanted-wrapper_root__2eaEs slanted-wrapper_variantGrayTransparent__aufaF">
    <div class="slanted-wrapper_start__Kl7rv slanted-wrapper_right__G0JWR"></div>
    <div class="page-label_labelWrapper__o1vpe">
    <div class="label_sizeXSmall__mFnrR">`

    const end = `</div></div><div class="slanted-wrapper_end__cD1Qu slanted-wrapper_right__G0JWR"></div></div>`

    const singleplayer = start + `<a href="/singleplayer" style="color:white">Singleplayer</a>` + end
    const competitive = start + `<a href="/competitive" style="color:white">Competitive</a>` + end
    const party = start + `<a href="/play-with-friends" style="color:white">Party</a>` + end
    const quiz = start + `<a href="/quiz" style="color:white">Quiz</a>` + end
    const ongoingGames = start + `<a href="/me/current" style="color:white">Ongoing Games</a>` + end
    const activities = start + `<a href="/me/activities" style="color:white">Activities</a>` + end
    const myMaps = start + `<a href="/me/maps" style="color:white">My Maps</a>` + end
    const likedMaps = start + `<a href="/me/likes" style="color:white">Liked Maps</a>` + end

    // const html = singleplayer + competitive + party + quiz + ongoingGames + activities + myMaps + likedMaps
    const html = singleplayer + competitive + party + quiz + ongoingGames + activities + myMaps + likedMaps

    const headers = document.getElementsByTagName("header")
    const header = headers[0]
    const divs = header.getElementsByTagName("div")
    let menu

    const url = window.location.href

    // different header on home page
    if (url == "https://www.geoguessr.com/"){
        menu = divs[1]
    } else {
        menu = divs[19]
    }

    menu.style.display = "flex"

    const newItems = document.createElement("div")
    newItems.innerHTML = html
    newItems.style.display = "flex"
    menu.prepend(newItems) // keeping the original labels fixes issues with "crashes" links on pages are clicked

    const newDivs = newItems.getElementsByClassName("slanted-wrapper_root__2eaEs")
    const menuItems = menu.getElementsByClassName("slanted-wrapper_root__2eaEs")
    const menuLinks = menu.getElementsByClassName("label_sizeXSmall__mFnrR")

    // hides original label
    if (menuItems.length > newDivs.length) {
        menuItems[menuItems.length-1].style.display = "none"
    }

    // shows active page
    for (let i=0; i<menuItems.length; i++) {
        let links = menuLinks[i].getElementsByTagName("a")
        if (links == null) continue
        let link = links[0]
        if (link == null) continue

        if (link.href == url) {
            link.style.color = ""
            menuItems[i].className = "slanted-wrapper_root__2eaEs slanted-wrapper_variantWhite__VKHvw"
            break
        } else {
            link.style.color = "white"
            menuItems[i].className = "slanted-wrapper_root__2eaEs slanted-wrapper_variantGrayTransparent__aufaF"
        }
    }

}, false)

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址