您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Press 1-9 on Google search page to open the corresponding link
// ==UserScript== // @name Google digits // @description Press 1-9 on Google search page to open the corresponding link // @include https://www.google.tld/* // @version 1.3.0 // @author wOxxOm // @namespace wOxxOm.scripts // @license MIT License // @run-at document-start // @grant GM_openInTab // @icon https://www.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png // @noframes // ==/UserScript== const SEL = '#rso a h3'; const SEL2 = '.related-question-pair [aria-expanded][tabindex]'; const SELHIDE = '.related-question-pair a h3'; document.documentElement.appendChild(document.createElement('style')).textContent = /*css*/ ` #rso { counter-reset: digitnav digitnav2; } ${SEL}::before { counter-increment: digitnav; content: counter(digitnav) ":"; margin-right: .25ex; opacity: .5; } ${SEL2}::before { counter-increment: digitnav2; content: "⇧" counter(digitnav2) ":"; margin-right: .5ex; opacity: .75; } ${SEL}:hover::before { opacity: 1; } ${SELHIDE}::before { counter-increment: none !important; } `; addEventListener('keydown', function onKeyDown(e) { const k = e.which; const digit = k >= 48 && k <= 57 ? k - 48 : k >= 96 && k <= 105 ? k - 96 : -1; let el, a, b; if (digit >= 0 && location.href.match(/[#&?]q=/) && !e.metaKey && !e.ctrlKey && (el = e.target.localName) !== 'input' && (el !== 'textarea')) { const is2 = e.shiftKey; const elems = [...document.querySelectorAll(is2 ? SEL2 : SEL)] .filter(is2 ? Boolean : el => !el.matches(SELHIDE)); el = elems[digit ? digit - 1 : 9]; a = el && (el.closest('a') || is2 && el); if (!a) return; e.stopPropagation(); el.style.backgroundColor = el.style.backgroundColor ? '' : 'yellow'; a.focus(); if (a.scrollIntoViewIfNeeded) a.scrollIntoViewIfNeeded(); else if ((b = a.getBoundingClientRect()) && (b.y < 0 || b.bottom > innerHeight)) a.scrollIntoView({block: 'center'}); if (is2) a.click(); else if (e.altKey) GM_openInTab(a.href); else location = a.href; } }, true);