-1

아무도 Google 검색 결과에 대한 키보드 단축키를 만드는 방법을 알고 있는지 궁금합니다. 예를 들어 첫 번째 Google 검색 결과를 내 키보드에서 열거 나 다음 번호로 연속적으로 열어 볼 수있는 방법을 찾고 있습니다.Google 검색 결과에 대한 단축키를 만드는 방법은 무엇입니까?

나는이를 위해 높은 방법과 낮은 방법을 찾았지만 훨씬 더 가깝지는 않았다. 이 기능을 수행하는 데 사용할 수있는 길/확장 기능/언어는 무엇입니까?

적어도 누군가가 자원 계획이나 방향을 가르쳐 줄 수 있는지 궁금합니다. Tampermonkey 확장 프로그램을 Chrome 확장 프로그램으로 다운로드했지만 필요한 JS 코드를 만들거나 찾을 수 없었습니다. 내가 찾고있는 예가 여기에 있습니다 : http://googlesystem.blogspot.com/2007/02/keyboard-shortcuts-for-google-search.html. 불행하게도, 거기에서 발견 된 스크립트와 링크는 죽고 믿을 수 없을만큼 오래되었습니다 (2007 년부터).

답변

1

이 아이디어가 흥미 롭습니다. 따라서 모든 Google 도메인에서 사용자가 사용할 수있는 .tld 도메인을 통해 작동하는 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 사용의 개인적인.

+0

아주 좋은 코드입니다. +1 :) 나는 이런 종류의 열정으로 새로운 사용자가 이것이 무료 코드 작성 서비스라고 생각하게 할까 두려워합니다. OP의 게시물을 확인하면 여러 이유로 (마감/너무 광범위) 폐쇄 자격이 있음을 알 수 있습니다. –

+0

그래, 나도 알아, 내가 구글 크롬 확장 태그에서 볼 질문의 절반을 닫습니다. – wOxxOm

+0

그는 실제로 SuperUser (http://superuser.com/q/1123358/194976)에서이 질문을 게시했습니다. 나는 그것이 오프 피오크 (offftopic)라는 이유로 여기에서 다시 시도했다. –