您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
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.2.4
- // @author wOxxOm
- // @namespace wOxxOm.scripts
- // @license MIT License
- // @run-at document-start
- // @grant none
- // @icon https://www.google.com/images/branding/googleg/1x/googleg_standard_color_128dp.png
- // @noframes
- // ==/UserScript==
- const SEL = '#rso a h3';
- const SEL10 = '#rso > :last-child a h3';
- const SELHIDE = '#rso [aria-hidden="true"] a h3';
- document.documentElement.appendChild(document.createElement('style')).textContent = /*css*/ `
- body {
- counter-reset: digitnav;
- }
- ${SEL}::before {
- counter-increment: digitnav;
- content: counter(digitnav) ":";
- position: absolute;
- margin-left: -1em;
- opacity: .5;
- z-index: 127;
- }
- ${SEL10}::before {
- content: "0:";
- }
- ${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;
- if (digit >= 0 &&
- location.href.match(/[#&?]q=/) &&
- !e.metaKey && !e.ctrlKey &&
- (el = e.target.localName) !== 'input' && (el !== 'textarea')) {
- const elems = [...document.querySelectorAll(SEL)].filter(el => !el.matches(SELHIDE));
- el = elems[digit ? digit - 1 : 9];
- const link = el && el.closest('a');
- if (!link) return;
- removeEventListener('keydown', onKeyDown, true);
- e.stopPropagation();
- el.style.backgroundColor = 'yellow';
- link.focus();
- link.dispatchEvent(new MouseEvent('click',
- e.shiftKey && {shiftKey: true} ||
- e.altKey && {ctrlKey: true} ||
- {}));
- }
- }, true);