// ==UserScript== // @name Google Search Maps Fix // @namespace http://tampermonkey.net/ // @version 2.0.0 // @description Bring Google maps button back // @author Ovinomaster // @include https://www.google.tld/search* // @icon https://www.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png // @grant none // @license CC-BY-NC-SA-4.0; https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode // @homepageURL https://greasyfork.org/it/users/1271103-ovinomaster // @downloadURL none // ==/UserScript== (function() { 'use strict'; function addMapsTab() { // Find the navigation bar container (All, Images, News…) const navList = document.querySelector('[role="navigation"] [role="list"]'); if (!navList) return; // Check if “Maps” is already present const existing = Array.from(navList.querySelectorAll('li')).find(li => /Maps|Mappa/i.test(li.textContent)); if (existing) return; // Clone an existing tab item to keep the same style const cloneSrc = navList.querySelector('li'); if (!cloneSrc) return; const mapsLi = cloneSrc.cloneNode(true); const link = mapsLi.querySelector('a'); if (link) { // Get the current search query const q = new URLSearchParams(window.location.search).get('q') || ''; // Set the link to Google Maps link.href = `https://www.google.com/maps?q=${encodeURIComponent(q)}`; } const span = mapsLi.querySelector('span'); if (span) { span.textContent = 'Maps'; } else { mapsLi.textContent = 'Maps'; } // Insert as the second tab (right after “All”) navList.insertBefore(mapsLi, navList.childNodes[1]); } function makeMiniMapClickable() { const q = new URLSearchParams(window.location.search).get('q') || ''; const mapsLink = `https://www.google.com/maps?q=${encodeURIComponent(q)}`; // Example: thumbnails may have the “.Lx2b0d” class in Google markup const mini = document.querySelector('.Lx2b0d'); if (mini && !mini.closest('a')) { const a = document.createElement('a'); a.href = mapsLink; a.style.display = 'block'; // Move the mini-map’s children inside the link while (mini.firstChild) { a.appendChild(mini.firstChild); } mini.appendChild(a); } } // Run on page load and periodically (to handle dynamic navigation) addMapsTab(); makeMiniMapClickable(); setInterval(() => { addMapsTab(); makeMiniMapClickable(); }, 2000); })();