pageAction.setIcon()

设置页面操作的图标。

您可以将单个图标指定为图像文件路径或 pageAction.ImageDataType 对象。

您可以通过提供包含多个路径或 ImageData 对象的字典,指定不同大小的多个图标。这意味着图标不必针对像素密度不同的设备进行缩放。

这是一个异步函数,它返回一个 Promise

语法

js
let settingIcon = browser.pageAction.setIcon(
  details         // object
)

参数

details

object。包含 imageDatapath 属性以及 tabId 属性的对象。

imageData 可选

pageAction.ImageDataTypeobject。这可以是单个 ImageData 对象或字典对象。

使用字典对象来指定不同大小的多个 ImageData 对象,这样图标就不必针对像素密度不同的设备进行缩放。如果 imageData 是字典,则每个属性的值都是一个 ImageData 对象,其名称是其大小,例如

js
let settingIcon = browser.action.setIcon({
  imageData: {
    16: image16,
    32: image32,
  },
});

浏览器将根据屏幕的像素密度选择要使用的图像。有关此内容的更多信息,请参见 选择图标大小

path 可选

stringobject。这可以是图标文件的相对路径或字典对象。

使用字典对象来指定不同大小的多个图标文件,这样图标就不必针对像素密度不同的设备进行缩放。如果 path 是字典,则每个属性的值都是一个相对路径,其名称是其大小,例如

js
let settingIcon = browser.action.setIcon({
  path: {
    16: "path/to/image16.jpg",
    32: "path/to/image32.jpg",
  },
});

浏览器将根据屏幕的像素密度选择要使用的图像。有关此内容的更多信息,请参见 选择图标大小

如果 pathnull,则将页面操作的图标重置为在 page_action 清单键中提供的图标。

如果 path"",则将图标重置为浏览器的全局默认图标(即,如果 page_action 清单键中未提供图标,则使用此图标)。

如果 path 不指向有效的图标,则不会显示任何图标。

tabId

integer。要设置其图标的标签页的 ID。

返回值

一个 Promise,它将在图标设置完毕后,不带任何参数被兑现。

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

示例

在用户点击页面操作时设置其图标

js
browser.pageAction.onClicked.addListener((tab) => {
  browser.pageAction.setIcon({
    tabId: tab.id,
    path: "icons/icon-48.png",
  });
});

示例扩展

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