pageAction.setIcon()
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
.
Syntax
var settingIcon = browser.pageAction.setIcon( details // object )
Parameters
details
-
object
. An object containing eitherimageData
orpath
properties, and atabId
property.-
imageData
Optional -
orpageAction.ImageDataType
object
. This is either a singleImageData
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. IfimageData
is a dictionary, the value of each property is anImageData
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
orobject
. 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
isnull
, this will reset the page action's icon to the icon that was given in thepage_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 thepage_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.
-
Return value
A Promise
that will be fulfilled with no arguments once the icon has been set.
Browser compatibility
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 |
? |
? |
? |
Examples
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" }); });
Example extensions
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