2017-08-08 59 views
-4

請分享您可能提出的任何js代碼,以便我可以重複使用它。謝謝谷歌搜索結果頁面使用greasemonkey/tampermonkey的鍵盤快捷鍵?

+3

您有問題/您是否遇到問題,或者您只是試圖分享您的代碼?如果前者,請更新您的帖子,詳細說明您遇到的問題/錯誤,以及您爲解決問題所做的工作。如果是後者,堆棧溢出不是合適的地方 - 而是看看GitHub或類似的東西。 – TheJim01

回答

0

下面是一些谷歌搜索結果頁面快捷方式的工作代碼。請隨時即興創作和LMK感謝

SHIFT + I:打開圖片, Shift + V鍵:將打開視頻, ... ... ...

,你會看到搜索結果超鏈接旁邊的鏈接號碼(鏈接) 如果按下鍵盤上的號碼,它將在新選項卡中打開該鏈接。

您需要greasemonkey或tampermonkey才能運行此js代碼。

我改進了一點通過利用什麼樣的開發商之一Way to Create Keyboard Shortcuts for Google Search Results?

希望這有助於寫道。

謝謝,

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 
}