Omnibox
Разрешает расширениям реализовывать настраиваемое поведение при вводе пользователем текста в адресную строку браузера.
Когда пользователь фокусирует адресную строку браузера и начинает вводить текст, браузер отображает раскрывающееся меню с предложенными страницами на основе введённого текста. Это предоставляет пользователю быстрый способ доступа, например, к страницам из истории или закладок.
API omnibox предоставляет расширению возможность настраивать предложения, отображаемые в раскрывающемся меню, когда пользователь вводит ключевое слово, определённое расширением. Работает следующим образом:
- Сначала расширение должно включить ключ "omnibox" в файле manifest.json, который определяет ключевое слово.
- Когда пользователь фокусирует адресную строку и вводит ключевое слово, за которым следует пробел, расширение получает событие
omnibox.onInputStarted. - По желанию расширение может вызвать
omnibox.setDefaultSuggestion(), чтобы определить первое предложение, отображаемое в раскрывающемся меню адресной строки. - По мере продолжения ввода символов пользователем расширение получает события
omnibox.onInputChanged. Обработчик событий получает значение, введённое пользователем, и может заполнить раскрывающееся меню адресной строки предложениями. Если расширение устанавливает значение по умолчанию с помощьюomnibox.setDefaultSuggestion(), это предложение отображается первым в раскрывающемся меню. - Если пользователь принимает предложение, расширение получает событие
omnibox.onInputEntered. Обработчик событий получает принятое предложение. - Если пользователь удаляет предложение, расширение получает событие
omnibox.onDeleteSuggestion. - Если пользователь закрывает раскрывающееся меню, расширение получает событие
omnibox.onInputCancelled.
Типы
omnibox.OnInputEnteredDisposition-
Описывает рекомендуемый метод обработки выбранного предложения: открыть в текущей вкладке, открыть в новой активной вкладке или открыть в новой фоновой вкладке.
omnibox.SuggestResult-
Объект, представляющий предложение для добавления в раскрывающееся меню адресной строки.
Функции
omnibox.setDefaultSuggestion()-
Определяет первое предложение, отображаемое в раскрывающемся меню, когда пользователь вводит ключевое слово вашего расширения, за которым следует пробел.
События
omnibox.onDeleteSuggestion-
Срабатывает всякий раз, когда пользователь удаляет предложение.
omnibox.onInputStarted-
Срабатывает, когда пользователь фокусирует адресную строку и вводит ключевое слово вашего расширения, за которым следует пробел.
omnibox.onInputChanged-
Срабатывает всякий раз, когда пользовательский ввод изменяется после фокусировки адресной строки и ввода ключевого слова вашего расширения, за которым следует пробел.
omnibox.onInputEntered-
Срабатывает, когда пользователь принимает одно из предложений вашего расширения.
omnibox.onInputCancelled-
Срабатывает, когда пользователь закрывает раскрывающееся меню адресной строки после того, как сфокусировал её и ввёл ключевое слово вашего расширения, за которым следует пробел.
Примеры расширений
Совместимость с браузерами
| Рабочий стол | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
OnInputEnteredDisposition |
44 | 79 | 52 | ? | 31 | Нет | ? | ? | Нет | ? | Нет | ? |
SuggestResult |
9 | 79 | 52'description' is interpreted as plain text, and XML markup is not recognized. |
? | 15 | Нет | ? | ? | Нет | ? | Нет | ? |
onDeleteSuggestion |
63 | 79 | 109 | ? | 50 | Нет | ? | ? | Нет | ? | Нет | ? |
onInputCancelled |
9 | 79 | 52 | ? | 15 | Нет | ? | ? | Нет | ? | Нет | ? |
onInputChanged |
9 | 79 | 52 | ? | 15 | Нет | ? | ? | Нет | ? | Нет | ? |
onInputEntered |
9 | 79 | 52 | ? | 15 | Нет | ? | ? | Нет | ? | Нет | ? |
onInputStarted |
9 | 79 | 52 | ? | 15 | Нет | ? | ? | Нет | ? | Нет | ? |
setDefaultSuggestion |
9 | 79 | 52'description' is interpreted as plain text, and XML markup is not recognized. |
? | 15 | Нет | ? | ? | Нет | ? | Нет | ? |
Примечание: Этот 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