このアイデアは私には興味がありましたので、ここではすべてのGoogleドメインで特別な.tld
ドメインを使用してuserscriptsで利用できる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の投稿をチェックすると、彼は複数の理由で(閉鎖/広すぎる)閉鎖の資格があることがわかります。 –
ええ、私はgoogle-chrome-extensionタグに表示されている質問の半分を閉じて投票します。 – wOxxOm
彼は実際にこの質問をSuperUser(http://superuser.com/q/1123358/194976)に投稿しました。私はそこにコメントしましたので、ここで再試行しました。 –