기본 키보드 기능을 다시 추가 할 Chrome 확장 프로그램을 만들었습니다 (적어도 사용했습니다). 검색 창에 초점이 맞지 않으면 아무 키나 누르면 자동으로 초점이 맞춰집니다. 또한 화살표 키와 tab / shift + tab을 사용하면 결과를 탐색 할 수 있습니다. 이 기능이 Google이 기능을 다시 추가 할 때까지 생산성을 유지하는 데 도움이되기를 바랍니다.
https://chrome.google.com/webstore/detail/google-search-result-keyb/iobmefdldoplhmonnnkchglfdeepnfhd?hl=ko&gl=US
확장을 편집하려는 경우를위한 확장 코드는 다음과 같습니다.
(function() {
'use strict';
var isResultsPage = document.querySelector('html[itemtype="http://schema.org/SearchResultsPage"]');
if (!isResultsPage) {
return;
}
var searchbox = document.querySelector('form[role="search"] input[type="text"]:nth-of-type(1)'),
results = document.querySelectorAll('h3 a'),
KEY_UP = 38,
KEY_DOWN = 40,
KEY_TAB = 9;
function focusResult(offset) {
var focused = document.querySelector('h3 a:focus');
// No result is currently focused. Focus the first one
if (focused == null) {
results[0].focus();
}
else {
for (var i = 0; i < results.length; i++) {
var result = results[i];
if (result === focused) {
var focusIndex = i + offset;
if (focusIndex < 0) focusIndex = 0;
if (focusIndex >= results.length) focusIndex = results.length - 1;
results[focusIndex].focus();
}
}
}
}
window.addEventListener('keydown', function(e) {
e = e || window.event;
var isSearchActive = searchbox === document.activeElement,
keycode = e.keyCode,
// From https://stackoverflow.com/questions/12467240/determine-if-javascript-e-keycode-is-a-printable-non-control-character
isPrintable = (keycode > 47 && keycode < 58) || // number keys
(keycode > 64 && keycode < 91) || // letter keys
(keycode > 95 && keycode < 112) || // numpad keys
(keycode > 185 && keycode < 193) || // ;=,-./` (in order)
(keycode > 218 && keycode < 223); // [\]' (in order)
if ((!isSearchActive && e.keyCode == KEY_DOWN) || (e.keyCode == KEY_TAB && !e.shiftKey)) {
e.preventDefault();
e.stopPropagation();
focusResult(1); // Focus next
}
else if ((!isSearchActive && e.keyCode == KEY_UP) || (e.keyCode == KEY_TAB && e.shiftKey)) {
e.preventDefault();
e.stopPropagation();
focusResult(-1); // Focus previous
}
else if (!isSearchActive && isPrintable) {
// Otherwise, force caret to end of text and focus the search box
searchbox.value = searchbox.value + " ";
searchbox.focus();
}
});
})();