说明
借助多功能框 API,您可以向 Google Chrome 的地址栏(也称为多功能框)注册关键字。
当用户输入扩展程序的关键字后,便开始仅与您的扩展程序互动。每次按键操作都会发送到您的扩展程序,您可以提供建议作为响应。
建议可以采用多种方式进行丰富格式设置。当用户接受建议时,您的扩展程序会收到通知,并可以采取相应行动。
清单
您必须在清单中包含 "omnibox.keyword"
字段,才能使用多功能框 API。您还应指定一个 16x16 像素的图标,该图标会在建议用户进入关键字模式时显示在地址栏中。
例如:
{ "name": "Aaron's omnibox extension", "version": "1.0", "omnibox": { "keyword" : "aaron" }, "icons": { "16": "16-full-color.png" }, "background": { "persistent": false, "scripts": ["background.js"] } }
示例
如需试用此 API,请从 chrome-extension-samples 代码库中安装 omnibox API 示例。
类型
DefaultSuggestResult
建议结果。
属性
- 说明
字符串
网址下拉菜单中显示的文字。可以包含用于设置样式的 XML 样式标记。支持的标记包括“url”(用于表示字面网址)、“match”(用于突出显示与用户查询匹配的文本)和“dim”(用于表示暗淡的辅助文本)。样式可以嵌套,例如“变暗的匹配项”。
DescriptionStyleType
样式类型。
枚举
“网址”
“match”
“调暗”
OnInputEnteredDisposition
多功能框查询的窗口处置。这是显示结果的推荐上下文。例如,如果多功能框命令是导航到某个网址,则“newForegroundTab”处置方式表示导航应在新选中的标签页中进行。
枚举
“currentTab”
"newForegroundTab"
"newBackgroundTab"
SuggestResult
建议结果。
属性
- 内容
字符串
放入网址栏中的文本,当用户选择此条目时,该文本会发送给扩展程序。
- 可删除
布尔值(可选)
Chrome 63 及更高版本建议结果是否可由用户删除。
- 说明
字符串
网址下拉菜单中显示的文字。可以包含用于设置样式的 XML 样式标记。支持的标记包括“url”(用于表示字面网址)、“match”(用于突出显示与用户查询匹配的文本)和“dim”(用于表示暗淡的辅助文本)。样式可以嵌套,例如,调暗的匹配项。您必须转义这五个预定义实体,才能将其显示为文本:stackoverflow.com/a/1091953/89484
方法
setDefaultSuggestion()
chrome.omnibox.setDefaultSuggestion(
suggestion: DefaultSuggestResult,
): Promise<void>
为默认建议设置说明和样式。默认建议是指显示在网址栏下方的第一个建议行中的文字。
参数
-
不含“content”参数的部分 SuggestResult 对象。
返回
-
Promise<void>
Chrome 100 及更高版本
事件
onDeleteSuggestion
chrome.omnibox.onDeleteSuggestion.addListener(
callback: function,
)
用户已删除建议的结果。
参数
- callback
函数
callback
参数如下所示:(text: string) => void
- text
字符串
-
onInputCancelled
chrome.omnibox.onInputCancelled.addListener(
callback: function,
)
用户已结束关键字输入会话,但未接受输入。
参数
- callback
函数
callback
参数如下所示:() => void
onInputChanged
chrome.omnibox.onInputChanged.addListener(
callback: function,
)
用户已更改在多功能框中输入的内容。
参数
- callback
函数
callback
参数如下所示:(text: string, suggest: function) => void
- text
字符串
- suggest
函数
suggest
参数如下所示:(suggestResults: SuggestResult[]) => void
- suggestResults
建议结果数组
-
-
onInputEntered
chrome.omnibox.onInputEntered.addListener(
callback: function,
)
用户已接受在多功能框中输入的内容。
参数
- callback
函数
callback
参数如下所示:(text: string, disposition: OnInputEnteredDisposition) => void
- text
字符串
- disposition
-
onInputStarted
chrome.omnibox.onInputStarted.addListener(
callback: function,
)
用户已通过输入扩展程序的关键字启动了关键字输入会话。保证在每个输入会话中发送一次,并且在任何 onInputChanged 事件之前发送。
参数
- callback
函数
callback
参数如下所示:() => void