Sets the icon for the page action.
You can specify a single icon as either the path to an image file or a pageAction.ImageDataType
object.
You can specify multiple icons in different sizes by supplying a dictionary containing multiple paths or ImageData
objects. This means the icon doesn't have to be scaled for a device with a different pixel density.
This is an asynchronous function that returns a Promise
.
var settingIcon = browser.pageAction.setIcon( details // object )
details
object
. An object containing either imageData
or path
properties, and a tabId
property.
imageData
Optional
or pageAction.ImageDataType
object
. This is either a single ImageData
object or a dictionary object.
Use a dictionary object to specify multiple ImageData
objects in different sizes, so the icon does not have to be scaled for a device with a different pixel density. If imageData
is a dictionary, the value of each property is an ImageData
object, and its name is its size, like this:
{ 16: image16, 32: image32 }
The browser will choose the image to use depending on the screen's pixel density. See Choosing icon sizes for more information on this.
path
Optional
string
or object
. This is either a relative path to an icon file or a dictionary object.
Use a dictionary object to specify multiple icon files in different sizes, so the icon does not have to be scaled for a device with a different pixel density. If path
is a dictionary, the value of each property is a relative path, and its name is its size, like this:
{ 16: "path/to/image16.jpg", 32: "path/to/image32.jpg" }
The browser will choose the image to use depending on the screen's pixel density. See Choosing icon sizes for more information on this.
If path
is null
, this will reset the page action's icon to the icon that was given in the page_action
manifest key.
If path
is ""
, this will reset the icon to the browser's global default icon (that is, the icon used if no icon is given in the page_action
manifest key).
If path
does not point to a valid icon, then no icon will be displayed.
tabId
integer
. The ID of the tab whose icon you want to set.A Promise
that will be fulfilled with no arguments once the icon has been set.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
setIcon |
Yes
Before Chrome 23, `path` couldn't specify multiple icon files, but had to be a string specifying a single icon path.
|
14 |
45 |
? |
15 |
14 |
? |
? |
No |
? |
? |
? |
imageData |
23 |
79 |
45 |
? |
15 |
14 |
? |
? |
No |
? |
? |
? |
null |
No |
No |
59 |
? |
No |
14 |
? |
? |
No |
? |
? |
? |
Set the icon for the page action when the user clicks it:
browser.pageAction.onClicked.addListener((tab) => { browser.pageAction.setIcon({ tabId: tab.id, path: "icons/icon-48.png" }); });
Note:
This API is based on Chromium's chrome.pageAction
API. This documentation is derived from page_action.json
in the Chromium code.
Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pageAction/setIcon