pageAction.setIcon()

设置页面操作的图标。

你可以指定图片文件的路径或 sidebarAction.ImageDataType 对象作为单个图标。

你也可以通过提供一个包含多个路径或 ImageData 对象的字典来指定多个不同尺寸的图标,这样图标就不必为具有不同像素密度的设备进行缩放。

这是一个返回 Promise 的异步函数。

语法

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

参数

details

object。包含 imageDatapath 其中一个属性和 tabId 属性的对象。

imageData 可选

sidebarAction.ImageDataTypeobject。这要么是一个单一的 ImageData 对象,要么是一个字典对象。

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

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

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

path 可选

stringobject。这要么是指向图标文件的相对路径,要么是一个字典对象。

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

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

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

如果 pathnull,则会重置页面操作的图标为在 page_action 清单键中指定的图标。

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

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

tabId

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

返回值

Promise,当图标被设置时将不带参数地兑现。

浏览器兼容性

BCD tables only load in the browser

示例

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

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