51

На сегодняшний день Google Instant Search не работает. Вот как это выглядело раньше:

https://www.youtube.com/watch?v=ANVT56wlmTo

Я никогда не заботился о мгновенном отображении результатов во время набора текста. Тем не менее, я использовал сотни раз в день, сочетания клавиш это позволяло.

Для тех, кто никогда не использовал его - с включенным мгновенным поиском вы могли бы:

  • Нажмите ввод после поиска и используйте клавиши вверх / вниз для перемещения «указателя» вниз по результатам

  • Затем нажмите «Ввод», чтобы открыть результат поиска, на который указывают

  • В любой момент времени ввод букв / цифр на клавиатуре будет переориентироваться на строку поиска.

  • Нажатие ввода с выделенным результатом может быть объединено с модификатором ctrl, чтобы открыть результат в новой вкладке.

Я нахожу мышь довольно сложной в использовании и стараюсь избегать ее, когда это возможно. Есть ли какой-нибудь инструмент или скрипт, который я мог бы использовать для воспроизведения поведения клавиатуры, которое мне давал мгновенный поиск?

Предыдущие вопросы задавались (и были получены ответы) в эпоху мгновенного поиска (например, этот, этот и мой предыдущий вопрос здесь), в то время как я ищу замену, не связанную с Google, с той же функциональностью.

Я использую Chrome на Ubuntu 15.01.

5 ответов5

23

Google удалил эту функцию (она называется Google Instant Prediction), поэтому вы не можете просто отключить ее, как раньше.

Мне было так грустно видеть эту функцию, что я написал хак, чтобы перепроектировать ее прошлой ночью. Пока что он работает только с Google Chrome, но может быть адаптирован для работы со всеми остальными:

  1. Установите расширение Chrome ShortKeys.
  2. Нажмите на меню ShortKeys и выберите "Опции"
  3. Нажмите "Добавить" и заполните следующие поля:

Сочетание клавиш: вкладка

Поведение: запустить JavaScript

Пометить как: Выбор результатов

  1. Вставьте следующий JavaScript в код JavaScript для запуска:

    document.selectedResultId=0
    function selectResult(newId){
        els = document.querySelectorAll("div.r h3")
        if(newId < 0 || newId >= els.length)
            return  //Could modify for page nav...?
        rp = document.getElementById("result-pointer")
        if(rp != null){
            rp.remove()
        }
        document.selectedResultId=newId
        el = els[newId]
        lnk = el.firstElementChild
        el.innerHTML = "<div id=\"result-pointer\" style=\"position:absolute;left:-15px;\">&gt;</div>" + el.innerHTML
        lnk.focus()
    }
    document.onkeyup=function(event){
        if(event.keyCode==38)
            selectResult(document.selectedResultId-1)
        if(event.keyCode==40)
            selectResult(document.selectedResultId+1)
        if(event.keyCode==13){
          var el = document.querySelectorAll("div.r h3")[document.selectedResultId]
          var lnk = el.parentElement
          var url = lnk.href
          if(event.ctrlKey){
            var win = window.open(url,"_blank")
            win.blur()
            window.open().close()
          }
          else{
            document.location = url
          }
        }
    }
    selectResult(0)
    
  2. Настройте параметры активации:

Активен в полях формы (отмечено)

Веб-сайты (только конкретные сайты)

URL-адреса (по одному на строку): * .google.*

Вот как должна выглядеть страница настроек

Страница опций коротких клавиш

  1. Нажмите Сохранить, а затем закройте браузер.

Инструкции:

  • При перезапуске вы увидите маленькое синее ">", появившееся в результатах поиска при нажатии на вкладку.

  • Клавиши со стрелками вверх / вниз позволяют переключаться между результатами.

  • Нажав "Enter", вы перейдете к выделенному результату.

  • Нажмите Ctrl+Enter, чтобы открыть результат в новой вкладке.

Удачного поиска!

12

Я создал расширение Chrome, которое добавит функциональность основной клавиатуры (которую я использовал по крайней мере). Если окно поиска не сфокусировано, нажатие любой клавиши автоматически сфокусирует его. Кроме того, клавиши со стрелками и tab/shift+tab позволят вам перемещаться между результатами. Надеюсь, это поможет нам оставаться продуктивными, пока Google (надеюсь) не вернет эту функциональность обратно.

https://chrome.google.com/webstore/detail/google-search-result-keyb/iobmefdldoplhmonnnkchglfdeepnfhd?hl=en&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();
    }
  });
})();
8

По состоянию на 2017-07-31 Google полностью удалил эту функцию из поиска.

Я создал расширение Web Search Navigator с открытым исходным кодом, чтобы исправить это и добавить дополнительные функции (например, настраиваемые сочетания клавиш).

Смотрите инструкции по установке.

Надеюсь, вы найдете это полезным, но в любом случае - отзывы приветствуются!

4

Для Firefox я решаю эту проблему с помощью надстройки сочетаний клавиш Google Search Result. https://addons.mozilla.org/en-US/firefox/addon/google-search-result-shortcuts/?src=api

1

Вы можете попробовать расширения, которые вводят Vim-подобные сочетания клавиш. С ними вам больше никогда не понадобится мышь. Например, в настоящее время наиболее мощным для Chrome является cVim , а для Firefox - Vimperator .

С такими расширениями вы можете получить доступ к любой ссылке на текущей странице, нажав клавишу f (по умолчанию) и одну / две комбинации клавиш.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .