browser.omnibox

Описание

Omnibox API позволяет зарегистрировать ключевое слово в адресной строке Google Chrome, которая также называется омнибоксом.

Скриншот с подсказками, связанными с ключевым словом "Поиск в Chromium"

Когда пользователь вводит ключевое слово расширения, он начинает взаимодействовать только с этим расширением. Каждое нажатие клавиши отправляется в расширение, и вы можете предлагать варианты в ответ.

Подсказки могут быть оформлены по-разному. Когда пользователь принимает предложение, расширение получает уведомление и может выполнить действие.

Манифест

Чтобы использовать этот API, в манифесте нужно объявить следующие ключи:

"omnibox"

Чтобы использовать Omnibox API, в манифест нужно добавить поле "omnibox.keyword". Также необходимо указать значок размером 16 x 16 пикселей, который будет показываться в адресной строке, когда пользователям предлагается перейти в режим ключевых слов.

Пример:

{
  "name": "Aaron's omnibox extension",
  "version": "1.0",
  "omnibox": { "keyword" : "aaron" },
  "icons": {
    "16": "16-full-color.png"
  },
  "background": {
    "persistent": false,
    "scripts": ["background.js"]
  }
}

Примеры

Чтобы попробовать этот API, установите пример omnibox API из репозитория chrome-extension-samples.

Типы

DefaultSuggestResult

Результат подсказки.

Свойства

  • описание

    string

    Текст, который показывается в раскрывающемся списке URL. Может содержать разметку в стиле XML для оформления. Поддерживаются теги url (для URL), match (для выделения текста, соответствующего запросу пользователя) и dim (для вспомогательного текста). Стили могут быть вложенными, например затемненное совпадение.

DescriptionStyleType

Chrome 44+ browser.* начиная с Chrome 148

Тип стиля.

Перечисление

"url"

"match"

"dim"

OnInputEnteredDisposition

Chrome 44+ browser.* начиная с Chrome 148

Расположение окна для запроса в омнибоксе. Это рекомендуемый контекст для показа результатов. Например, если команда омнибокса заключается в переходе по определенному URL, то значение newForegroundTab означает, что переход должен произойти в новой выбранной вкладке.

Перечисление

"currentTab"

"newForegroundTab"

"newBackgroundTab"

SuggestResult

Результат подсказки.

Свойства

  • контент

    string

    Текст, который вставляется в адресную строку и отправляется расширению, когда пользователь выбирает эту запись.

  • удаляемый

    Логическое значение (необязательно)

    Chrome 63 и более поздних версий browser.* начиная с Chrome 148

    Может ли пользователь удалить результат подсказки.

  • описание

    string

    Текст, который показывается в раскрывающемся списке URL. Может содержать разметку в стиле XML для оформления. Поддерживаются теги url (для URL), match (для выделения текста, соответствующего запросу пользователя) и dim (для вспомогательного текста). Стили могут быть вложенными, например затемненное совпадение. Чтобы пять предопределенных объектов отображались как текст, их нужно экранировать: stackoverflow.com/a/1091953/89484.

Методы

setDefaultSuggestion()

browser.omnibox.setDefaultSuggestion(
  suggestion: DefaultSuggestResult,
)
: Promise<void>

Задает описание и стиль для подсказки по умолчанию. Подсказка по умолчанию – это текст, который показывается в первой строке подсказок под адресной строкой.

Параметры

  • подсказка

    Частичный объект SuggestResult без параметра content.

Возвраты

  • Promise<void>

    Chrome 100+ browser.* начиная с Chrome 148

События

onDeleteSuggestion

Chrome 63 и более поздних версий browser.* начиная с Chrome 148
browser.omnibox.onDeleteSuggestion.addListener(
  callback: function,
)

Пользователь удалил предложенный результат.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (text: string) => void

    • Текст

      string

onInputCancelled

browser.omnibox.onInputCancelled.addListener(
  callback: function,
)

Пользователь завершил сеанс ввода ключевых слов, не приняв введенные данные.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void

onInputChanged

browser.omnibox.onInputChanged.addListener(
  callback: function,
)

Пользователь изменил текст в омнибоксе.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (text: string, suggest: function) => void

    • Текст

      string

    • подсказки

      function

      Параметр suggest выглядит следующим образом:

      (suggestResults: SuggestResult[]) => void

      • suggestResults

        Массив результатов подсказок

onInputEntered

browser.omnibox.onInputEntered.addListener(
  callback: function,
)

Пользователь принял то, что введено в омнибокс.

Параметры

onInputStarted

browser.omnibox.onInputStarted.addListener(
  callback: function,
)

Пользователь начал сеанс ввода ключевого слова, введя ключевое слово расширения. Это событие гарантированно отправляется ровно один раз за сеанс ввода и до любых событий onInputChanged.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void