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; } });
Примеры расширений
Примечание: Этот 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