如何为Google搜索结果创建键盘快捷键?

时间:2016-09-12 18:33:33

标签: google-chrome keyboard-shortcuts google-search key-bindings tampermonkey

我想知道是否有人知道为谷歌搜索结果创建键盘快捷键的方法。例如,我正在寻找一种方法,在键盘上打开数字1的第一个谷歌搜索结果,并使用下一个数字打开每个连续的条目。

我已经搜索过高低不同的方法,但我还没有接近。我可以使用哪些方法/扩展/语言来执行此功能?

至少,我想知道是否有人能指出我的资源方向或方法来编程。我将Tampermonkey扩展程序下载为Chrome扩展程序,但我还没有能够创建或找到适当的JS代码来执行我想要的操作。我可以在这里找到我正在寻找的一个例子:http://googlesystem.blogspot.com/2007/02/keyboard-shortcuts-for-google-search.html。不幸的是,那里发现的脚本和链接已经死了,而且非常古老(从2007年开始)。

1 个答案:

答案 0 :(得分:1)

这个想法让我感兴趣,所以这里是Tampermonkey的基本实现,可以通过用户脚本可用的特殊[STAThread] public static void Main() { // code } 域在所有Google域上运行。

.tld

挑战是在页面开始之前处理事件,因此我在泡泡链的顶部使用了capturing listener// ==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 metakey在页面注册之前注册处理程序。