action

读取和修改由 action manifest 键定义的浏览器工具栏按钮的属性,并监听其点击事件。

注意: 此 API 在 Manifest V3 或更高版本中可用。它取代了 Manifest V2 API browserAction,以及 Chrome 和 Safari 中的 pageAction

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

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

如果您指定了一个弹出窗口,当用户单击图标时,该弹出窗口就会显示并加载其内容。如果您没有指定弹出窗口,当用户单击图标时,会向您的扩展程序派发一个事件。

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

使用 `action` API,您可以

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

类型

action.ColorArray

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

action.ImageDataType

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

函数

action.setTitle()

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

action.getTitle()

获取浏览器操作的标题。

action.setIcon()

设置浏览器操作的图标。

action.setPopup()

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

action.getPopup()

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

action.openPopup()

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

action.setBadgeText()

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

action.getBadgeText()

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

action.setBadgeBackgroundColor()

设置徽章的背景颜色。

action.getBadgeBackgroundColor()

获取徽章的背景颜色。

action.setBadgeTextColor()

设置徽章的文本颜色。

action.getBadgeTextColor()

获取徽章的文本颜色。

action.getUserSettings()

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

action.enable()

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

action.disable()

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

action.isEnabled()

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

事件

action.onClicked

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

action.onUserSettingsChanged

当影响扩展程序操作的用户指定设置发生更改时触发。

浏览器兼容性

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