// ==UserScript== // @name Google Search Maps Fix // @namespace http://tampermonkey.net/ // @version 2.0.1 // @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() { // Target the new navigation container const navList = document.querySelector('div.beZ0tf.O1uzAe[role="list"]'); if (!navList) return; // Skip if "Maps" already exists if (navList.querySelector('span.R1QWuf')?.textContent === 'Maps' || navList.querySelector('a[data-added-by-userscript="maps"]')) return; // Clone an existing tab for structure consistency const refItem = navList.querySelector('div[role="listitem"]'); if (!refItem) return; const newItem = refItem.cloneNode(true); const newLink = newItem.querySelector('a.C6AK7c'); const q = new URLSearchParams(window.location.search).get('q') || ''; if (!newLink) return; // Update link newLink.href = `https://www.google.com/maps?q=${encodeURIComponent(q)}`; // newLink.target = '_blank'; newLink.setAttribute('data-added-by-userscript', 'maps'); // Clean up styles & attributes newLink.removeAttribute('aria-disabled'); newLink.removeAttribute('aria-current'); newLink.removeAttribute('selected'); newLink.style.color = ''; newLink.style.textDecoration = ''; // Replace text const label = newLink.querySelector('span.R1QWuf'); if (label) label.textContent = 'Maps'; // Insert the new tab after the first one (usually "All") navList.insertBefore(newItem, navList.children[1]); } // function makeMiniMapClickable() { // const q = new URLSearchParams(window.location.search).get('q') || ''; // const mapsLink = `https://www.google.com/maps?q=${encodeURIComponent(q)}`; // const mini = document.querySelector('.pyitY, [data-attrid*="map"]'); // if (mini && !mini.closest('a')) { // const a = document.createElement('a'); // a.href = mapsLink; // a.target = '_blank'; // a.style.display = 'block'; // a.style.textDecoration = 'none'; // while (mini.firstChild) a.appendChild(mini.firstChild); // mini.appendChild(a); // } // } // Keep trying since Google loads this asynchronously const observer = new MutationObserver(() => addMapsTab()); observer.observe(document.body, { childList: true, subtree: true }); // Run now and periodically addMapsTab(); makeMiniMapClickable(); setInterval(addMapsTab, 3000); })();