please share any js code you might have come up with so i can reuse it. thanks
Asked
Active
Viewed 1,439 times
-4
-
3Do you have a question/are you encountering problems, or are you just trying to share your code? If the former, please update your post with details about problems/errors you're encountering, and what you've done to try to fix it. If the latter, Stack Overflow is not the appropriate place--instead look into GitHub, or similar. – TheJim01 Aug 08 '17 at 19:31
1 Answers
2
below is a working code for some google search results page shortcuts. please feel free to improvise on it and lmk thanks
shift + I: will open Images, shift + V: will open Videos, ... ... ...
you will see the link number next to the search results hyperlink(link) if you press the number on the keyboard it will open that link in new tab.
you need greasemonkey or tampermonkey to run this js code.
I improved it a bit by leveraging what one of the developers wrote in Way to Create Keyboard Shortcuts for Google Search Results?
hope this helps.
thanks,
Abhi.
// ==UserScript==
// @name Google digits
// @include https://www.google.tld/*
// @run-at document-start
// @author Abhinay Gadikoppula
// @match https://stackoverflow.com/questions/39456608/way-to-create-keyboard-shortcuts-for-google-search-results
// @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
}

JohannesB
- 1,995
- 21
- 35

abhi gadikoppula
- 21
- 5