← All examples

JavaScript Navigation google.com

Google: keyboard navigation for results

Lets you move through results with the J and K keys and open the highlighted result with Enter.

Code to copy

// Navigate organic results with J / K keys and open with Enter
let jzIdx = -1;
function jzResults() {
  return Array.from(document.querySelectorAll('#search a > h3'))
    .map(function (h) { return h.closest('a'); });
}
function jzFocus(n) {
  const r = jzResults();
  if (!r.length) { return; }
  jzIdx = (n + r.length) % r.length;
  const el = r[jzIdx];
  el.style.outline = '2px solid #1a73e8';
  el.scrollIntoView({ block: 'center' });
  el.focus();
  r.forEach(function (a, i) {
    if (i !== jzIdx) { a.style.outline = ''; }
  });
}
document.addEventListener('keydown', function (e) {
  if (/INPUT|TEXTAREA/.test(document.activeElement.tagName)) { return; }
  if (e.key === 'j') { jzFocus(jzIdx + 1); }
  else if (e.key === 'k') { jzFocus(jzIdx - 1); }
  else if (e.key === 'Enter' && jzIdx >= 0) { jzResults()[jzIdx].click(); }
});

How to use this example

  1. Copy the code with the button above.
  2. Install JustZix (2 minutes) and open the extension on the target page.
  3. Add a new rule matching that page.
  4. Paste the code into the rule's JavaScript panel and save — it runs on every page visit.

Rate this example

No ratings yet — be the first.

Does this example work?

Snippets are useless without somewhere to paste them.

JustZix takes 2 minutes to install and runs your code on every matching page. No account, no payment.

Download free See use cases