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,当图标被设置时将不带参数地兑现。

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
setIcon
imageData
The path and imageData properties of the details parameter can be set to null.

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

示例

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

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