이 아이디어가 흥미 롭습니다. 따라서 모든 Google 도메인에서 사용자가 사용할 수있는 .tld
도메인을 통해 작동하는 Tampermonkey의 기본 구현이 있습니다.
// ==UserScript==
// @name Google digits
// @include https://www.google.tld/*
// @run-at document-start
// ==/UserScript==
// only work on search pages with #q= &q= ?q=
if (location.href.match(/[#&?]q=/)) {
window.addEventListener('keydown', function(e) {
var digit = e.keyCode - 48;
// 48 is the code for '0'
if (digit >= 1 && digit <= 9 &&
// don't intercept if a modifier key is held
!e.altKey && !e.ctrlKey && !e.shiftKey && !e.metaKey &&
// don't intercept 1-9 in the search input
e.target.localName != 'input')
{
// get all results in an array
var links = document.querySelectorAll('h3.r a');
// arrays are 0-based
var link = links[digit - 1];
if (link) {
// go to the linked URL
location.href = link.href;
// prevent site from seeing this keyboard event
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
}
}
}, true); // true means we capture the event before it's "bubbled" down
}
문제는 페이지보다 먼저 이벤트를 처리 할 수 있었다, 그래서 나는 거품 체인의 상단의 window
객체에 capturing listener을 사용했습니다, 페이지 등록하기 전에 핸들러의 등록을 @run-at: document-start
metakey 사용의 개인적인.
아주 좋은 코드입니다. +1 :) 나는 이런 종류의 열정으로 새로운 사용자가 이것이 무료 코드 작성 서비스라고 생각하게 할까 두려워합니다. OP의 게시물을 확인하면 여러 이유로 (마감/너무 광범위) 폐쇄 자격이 있음을 알 수 있습니다. –
그래, 나도 알아, 내가 구글 크롬 확장 태그에서 볼 질문의 절반을 닫습니다. – wOxxOm
그는 실제로 SuperUser (http://superuser.com/q/1123358/194976)에서이 질문을 게시했습니다. 나는 그것이 오프 피오크 (offftopic)라는 이유로 여기에서 다시 시도했다. –