chrome插件中文开发文档(非官方)

多功能地址栏(chrome.omnibox)

多功能地址栏API允许您在Google Chrome浏览器的地址栏(又叫多功能地址栏)中注册一个关键字。

A screenshot showing suggestions related to the keyword 'Chromium Search'

当用户输入您的扩展程序的关键字时,用户开始完全与您的扩展程序交互。每一次按键消息都将发送至您的扩展程序,您可以作出回应,提供建议。

建议可以具有各种不同格式。当用户接受某个建议时,将通知您的扩展程序作出反应。

Manifest

您必须在清单文件中包含omnibox keyword 属性来使用多功能地址栏API,您还应该指定一个16×16像素的图标,当用户进入关键字模式时,显示在地址栏中。

例如:

{
  "name": "Aaron的多功能地址栏扩展",
  "version": "1.0",
  "omnibox": { "keyword" : "aaron" },
  "icons": {
    "16": "16-full-color.png"
  },
  "background": {
    "persistent": false,
    "scripts": ["background.js"]
  }
}

注意: Chrome浏览器会自动创建您的16×16像素图标的灰度版本。您应该提供彩色的图标,以便用于其它需要颜色的情况,例如, 右键菜单API也使用16×16像素的图标,但是显示为彩色。

例子

您可以在 示例页面找到这一API的例子。

API参考: chrome.omnibox

类型

SuggestResult

( object )
建议结果。

SuggestResult属性

content ( string )
输入在地址栏中的文字,当用户选择这一项时发送给扩展程序。
description ( string )
显示在地址栏下拉框中的文字,可以包含XML样式标记。支持的标记为<url>(用于字面的URL)、<match>(用于匹配用户查询的高亮文本)和<dim>(用于帮助文本的浅色效果)。样式也可以嵌套,例如匹配文本同时使用浅色效果。

方法

setDefaultSuggestion

chrome.omnibox.setDefaultSuggestion(object suggestion)

设置默认建议的描述和样式,默认建议即显示在URL栏下的第一行建议。

参数

suggestion ( object )
具有部分内容的SuggestResult对象,没有"content"参数。有关参数的描述请参见SuggestResult。
description ( string )
显示在默认建议中的文字,可以包含占位符字符串“%s”,表示用户的输入。

事件

onInputStarted

chrome.omnibox.onInputStarted.addListener(function() {...});

用户输入了扩展程序的关键字,开始关键字输入会话。这一事件确保每次进入输入会话时发送一次,并且在任何onInputChanged事件之前发生。

onInputChanged

chrome.omnibox.onInputChanged.addListener(function(string text) {...});

用户更改了输入在多功能地址栏中的内容。

监听参数

text ( string )

回调函数

suggest应该指定一个如下形式的函数:

function(array of SuggestResult suggestResults) {...};
suggestResults ( array of SuggestResult )
包含建议结果的数组。

onInputEntered

chrome.omnibox.onInputEntered.addListener(function(string text) {...});

用户接受了输入在多功能地址栏中的内容。

监听参数

text ( string )

onInputCancelled

chrome.omnibox.onInputCancelled.addListener(function() {...});

用户结束了关键字输入,没有接受输入。

使用chrome.omnibox的示例扩展

  • Omnibox Example – To use, type 'omnix' plus a search term into the Omnibox.
  • Chromium Search – Add support to the omnibox to search the Chromium source code.