使用 greasemonkey/tampermonkey 的 google 搜索结果页面的键盘快捷键?
Keyboard Shortcuts for google search results page using greasemonkey/tampermonkey?
请分享您可能想出的任何 js 代码,以便我可以重用它。谢谢
下面是一些 google 搜索结果页面快捷方式的工作代码。请随时即兴创作,谢谢
shift + I: 将打开图像,
shift + V:将打开视频,
...
...
...
您会在搜索结果旁边看到 link 数字 hyperlink(link)
如果您按下键盘上的数字,它将在新标签页中打开 link。
你需要 greasemonkey 或 tampermonkey 来 运行 这个 js 代码。
我利用一位开发人员在 Way to Create Keyboard Shortcuts for Google Search Results?
中写的内容对其进行了一些改进
希望这对您有所帮助。
谢谢,
阿比。
// ==UserScript==
// @name Google digits
// @include https://www.google.tld/*
// @run-at document-start
// @author Abhinay Gadikoppula
// @match
// @grant none
// ==/UserScript==
// only work on search pages with #q= &q= ?q=
if (location.href.match(/[#&?]q=/)) {
var links = [];
var menu_links = [];
var menu_links_map = [];
window.onload = function() {
// get all header menu links
menu_links = document.getElementById("hdtb-msb").querySelectorAll('a.q.qs');
menu_links.forEach(function(link, index) {
menu_links_map[link.innerHTML.charAt(0)] = link;
});
// get all results in an array
links = document.querySelectorAll('h3.r a');
links.forEach(function(link, index) {
link.innerHTML = link.innerHTML + ' (' + (index + 1) + ')';
});
};
window.addEventListener('keydown', function(e) {
if (e.shiftKey && e.keyCode >= 65 && e.keyCode <= 90) {
e.preventDefault();
char = String.fromCharCode(e.keyCode);
//keycodes 65-90 are alphabets a-z
if (char in menu_links_map) {
menu_links_map[char].click();
}
} else if (e.keyCode >= 49 && e.keyCode <= 57 &&
// 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') {
//keycodes for 1-9 are 49-57 but replacing them with 1-9
var digit = e.keyCode - 48;
// arrays are 0-based
var link = links[digit - 1];
if (link) {
// go to the linked URL
window.open(link.href, '_blank');
// prevent site from seeing this keyboard event
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
}
} else if (e.keyCode == 191) {
// event '/' keycode 191
e.preventDefault();
input = document.getElementById("lst-ib");
val = input.value; //store the value of the element
input.value = ''; //clear the value of the element
input.focus(); //set focus on the input field
input.value = val; //set that value back.
}
}, true); // true means we capture the event before it's "bubbled" down
}
请分享您可能想出的任何 js 代码,以便我可以重用它。谢谢
下面是一些 google 搜索结果页面快捷方式的工作代码。请随时即兴创作,谢谢
shift + I: 将打开图像, shift + V:将打开视频, ... ... ...
您会在搜索结果旁边看到 link 数字 hyperlink(link) 如果您按下键盘上的数字,它将在新标签页中打开 link。
你需要 greasemonkey 或 tampermonkey 来 运行 这个 js 代码。
我利用一位开发人员在 Way to Create Keyboard Shortcuts for Google Search Results?
中写的内容对其进行了一些改进希望这对您有所帮助。
谢谢,
阿比。
// ==UserScript==
// @name Google digits
// @include https://www.google.tld/*
// @run-at document-start
// @author Abhinay Gadikoppula
// @match
// @grant none
// ==/UserScript==
// only work on search pages with #q= &q= ?q=
if (location.href.match(/[#&?]q=/)) {
var links = [];
var menu_links = [];
var menu_links_map = [];
window.onload = function() {
// get all header menu links
menu_links = document.getElementById("hdtb-msb").querySelectorAll('a.q.qs');
menu_links.forEach(function(link, index) {
menu_links_map[link.innerHTML.charAt(0)] = link;
});
// get all results in an array
links = document.querySelectorAll('h3.r a');
links.forEach(function(link, index) {
link.innerHTML = link.innerHTML + ' (' + (index + 1) + ')';
});
};
window.addEventListener('keydown', function(e) {
if (e.shiftKey && e.keyCode >= 65 && e.keyCode <= 90) {
e.preventDefault();
char = String.fromCharCode(e.keyCode);
//keycodes 65-90 are alphabets a-z
if (char in menu_links_map) {
menu_links_map[char].click();
}
} else if (e.keyCode >= 49 && e.keyCode <= 57 &&
// 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') {
//keycodes for 1-9 are 49-57 but replacing them with 1-9
var digit = e.keyCode - 48;
// arrays are 0-based
var link = links[digit - 1];
if (link) {
// go to the linked URL
window.open(link.href, '_blank');
// prevent site from seeing this keyboard event
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
}
} else if (e.keyCode == 191) {
// event '/' keycode 191
e.preventDefault();
input = document.getElementById("lst-ib");
val = input.value; //store the value of the element
input.value = ''; //clear the value of the element
input.focus(); //set focus on the input field
input.value = val; //set that value back.
}
}, true); // true means we capture the event before it's "bubbled" down
}