browserAction

读取和修改使用 browser_action manifest 键定义的浏览器工具栏按钮的属性,并监听这些按钮的点击事件。

一个 浏览器操作 是浏览器工具栏中的一个按钮。

您可以为按钮关联一个弹出窗口。与网页一样,弹出窗口使用 HTML、CSS 和 JavaScript 来指定。在弹出窗口中运行的 JavaScript 可以访问与您的后台脚本相同的 WebExtension API,但它的全局上下文是弹出窗口本身,而不是浏览器中显示的当前页面。要影响网页,您需要通过 消息 与它们进行通信。

如果您指定了一个弹出窗口,当用户点击图标时,它就会显示出来——并且内容也会被加载。如果您没有指定弹出窗口,当用户点击图标时,会向您的扩展发送一个事件。

该按钮还有一个上下文菜单,您可以使用 `browser_action` 类型的 menus.ContextType,通过 menus API 向此菜单添加项目。

使用 browserAction API,您可以

  • 使用 browserAction.onClicked 来监听图标的点击事件。
  • 获取和设置图标的属性——图标、标题、弹出窗口等。您可以全局地跨所有标签页获取和设置这些属性,或者通过传入标签页 ID 作为附加参数来为特定标签页设置。

类型

browserAction.ColorArray

一个包含四个整数的数组,范围为 0-255,用于定义 RGBA 颜色。

browserAction.ImageDataType

图像的像素数据。必须是一个 ImageData 对象(例如,来自 <canvas> 元素)。

函数

browserAction.setTitle()

设置浏览器操作的标题。这将显示在工具提示中。

browserAction.getTitle()

获取浏览器操作的标题。

browserAction.setIcon()

设置浏览器操作的图标。

browserAction.setPopup()

设置当用户点击浏览器操作图标时要打开的 HTML 文档作为弹出窗口。

browserAction.getPopup()

获取设置为浏览器操作弹出窗口的 HTML 文档。

browserAction.openPopup()

打开浏览器操作的弹出窗口。

browserAction.setBadgeText()

设置浏览器操作的徽章文本。徽章显示在图标的顶部。

browserAction.getBadgeText()

获取浏览器操作的徽章文本。

browserAction.setBadgeBackgroundColor()

设置徽章的背景颜色。

browserAction.getBadgeBackgroundColor()

获取徽章的背景颜色。

browserAction.setBadgeTextColor()

设置徽章的文本颜色。

browserAction.getBadgeTextColor()

获取徽章的文本颜色。

browserAction.getUserSettings()

获取用户为浏览器操作指定的设置。

browserAction.enable()

为某个标签页启用浏览器操作。默认情况下,浏览器操作对所有标签页都启用。

browserAction.disable()

禁用某个标签页的浏览器操作,这意味着在该标签页处于活动状态时无法单击它。

browserAction.isEnabled()

检查浏览器操作是否已启用。

事件

browserAction.onClicked

当浏览器操作图标被点击时触发。如果浏览器操作有弹出窗口,则此事件不会触发。

browserAction.onUserSettingsChanged

当影响扩展浏览器操作的用户设置发生更改时触发。

扩展程序示例

浏览器兼容性

注意:此 API 基于 Chromium 的 chrome.browserAction API。本文档摘自 Chromium 代码中的 browser_action.json