// ==UserScript== // @name Opens “Tools” Menu by Default on Google // @name:zh-TW 預設開啟 Google 的「工具」選單 // @description Opens the “Tools” menu on Google Search automatically when page loaded. // @description:zh-TW 在 Google 搜尋載入後自動打開「工具」選單。 // @icon https://wsrv.nl/?url=https://www.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png // @author Jason Kwok // @namespace https://jasonhk.dev/ // @version 1.1.1 // @license MIT // @match https://www.google.com/search // @match https://www.google.com/search?* // @run-at document-end // @grant none // @supportURL https://greasyfork.org/scripts/460247/feedback // @downloadURL none // ==/UserScript== const TOOLS_BUTTON_SELECTOR = "[aria-controls=hdtbMenus], [jsname=I4bIT]"; function handleToolsButton(button) { const interval = setInterval(() => { if (button.getAttribute("aria-expanded") !== "true") { button.click(); } else { clearInterval(interval); } }, 250); } const observer = new MutationObserver((records) => { for (const record of records) { for (const node of record.addedNodes) { if (node instanceof Element) { if ((node.getAttribute("aria-controls") === "hdtbMenus") || (node.getAttribute("jsname") === "I4bIT")) { observer.disconnect(); handleToolsButton(node); } else { const button = node.querySelector(TOOLS_BUTTON_SELECTOR); if (button) { observer.disconnect(); handleToolsButton(button); } } } } } }); observer.observe(document.body, { subtree: true, childList: true }); const button = document.querySelector(TOOLS_BUTTON_SELECTOR); if (button) { handleToolsButton(button); }