Spec-Zone.ru › Web Extensions

omnibox.onInputEntered

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

Используйте этот событие для обработки выбора пользователя, как правило, открывая соответствующую страницу. Обработчик события получает:

  • выбор пользователя
  • объект omnibox.OnInputEnteredDisposition: используйте его, чтобы определить, следует ли открыть новую страницу в текущей вкладке, в новой активной вкладке или в новой фоновой вкладке.

Синтаксис

browser.omnibox.onInputEntered.addListener(listener)
browser.omnibox.onInputEntered.removeListener(listener)
browser.omnibox.onInputEntered.hasListener(listener)

События имеют три функции:

addListener(listener)

Добавляет обработчик к этому событию.

removeListener(listener)

Прекращает прослушивание этого события. Аргумент listener — это обработчик, который нужно удалить.

hasListener(listener)

Проверяет, зарегистрирован ли обработчик listener для этого события. Возвращает true , если он прослушивает, false в противном случае.

Синтаксис addListener

Функция обработчика будет получать два параметра: строку text, и объект omnibox.OnInputEnteredDisposition.

Параметры

text

String. Это значение свойства content объекта omnibox.SuggestResult, которое выбрал пользователь.

disposition

OnInputEnteredDisposition. Перечисление omnibox.OnInputEnteredDisposition, указывающее, следует ли расширению открыть страницу в текущей вкладке, в новой активной вкладке или в новой фоновой вкладке.

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet
onInputEntered 9 79 52 ? 15 Нет ? ? Нет ? Нет ?

Примеры

В этом примере входные данные пользователя интерпретируются как имя свойства CSS, и в раскрывающемся списке заполняется по одному объекту omnibox.SuggestResult для каждого свойства CSS, соответствующего вводу. Свойство description объекта SuggestResult — это полное имя свойства, а content — страница MDN для этого свойства.

Пример также прослушивает событие omnibox.onInputEntered и открывает соответствующую страницу MDN для выбора в соответствии с аргументом omnibox.OnInputEnteredDisposition.

browser.omnibox.setDefaultSuggestion({
  description: "Type the name of a CSS property"
});

/*
Very short list of a few CSS properties.
*/
const props = [
  "animation",
  "background",
  "border",
  "box-shadow",
  "color",
  "display",
  "flex",
  "flex",
  "float",
  "font",
  "grid",
  "margin",
  "opacity",
  "overflow",
  "padding",
  "position",
  "transform",
  "transition"
];

const baseURL = "https://developer.mozilla.org/en-US/docs/Web/CSS/";

/*
Return an array of SuggestResult objects,
one for each CSS property that matches the user's input.
*/
function getMatchingProperties(input) {
  const result = [];
  for (const prop of props) {
    if (prop.startsWith(input)) {
      console.log(prop);
      const suggestion = {
        content: `${baseURL}${prop}`,
        description: prop
      }
      result.push(suggestion);
    } else if (result.length !== 0) {
      return result;
    }
  }
  return result;
}

browser.omnibox.onInputChanged.addListener((input, suggest) => {
  suggest(getMatchingProperties(input));
});

browser.omnibox.onInputEntered.addListener((url, disposition) => {
  switch (disposition) {
    case "currentTab":
      browser.tabs.update({url});
      break;
    case "newForegroundTab":
      browser.tabs.create({url});
      break;
    case "newBackgroundTab":
      browser.tabs.create({url, active: false});
      break;
  }
});

Примеры расширений

  • firefox-code-search

Примечание: Этот API основан на API chrome.omnibox Chromium.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/omnibox/onInputEntered

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API