sidebarAction.setIcon()
Legt das Symbol für die Seitenleiste fest.
Sie können ein einzelnes Symbol entweder als Pfad zu einer Bilddatei oder als sidebarAction.ImageDataType
-Objekt angeben.
Sie können mehrere Symbole in verschiedenen Größen angeben, indem Sie ein Wörterbuch bereitstellen, das mehrere Pfade oder ImageData
-Objekte enthält. Dies bedeutet, dass das Symbol nicht für ein Gerät mit unterschiedlicher Pixeldichte skaliert werden muss.
Dies ist eine asynchrone Funktion, die ein Promise
zurückgibt.
Arten von Symbolen
Ihre Erweiterung sollte ein Symbol für die Seitenleiste im Manifest-Schlüssel sidebar_action
angeben. Dies wird als "Manifest-Symbol" bezeichnet.
Wenn Sie kein Symbol im sidebar_action
-Schlüssel angeben, erhalten Sie das Standardsymbol des Browsers. Dies wird als "Standardsymbol" bezeichnet.
Wenn Sie ein neues Symbol mit setIcon()
festlegen und die tabId
-Option einbeziehen, wird das Symbol nur für den angegebenen Tab festgelegt. Dieses Symbol wird als "Tab-spezifisches Symbol" bezeichnet.
Wenn Sie ein neues Symbol mit setIcon()
festlegen und die windowId
-Option einbeziehen, wird das Symbol nur für das angegebene Fenster festgelegt. Dieses Symbol wird als "Fenster-spezifisches Symbol" bezeichnet und erscheint in allen Tabs dieses Fensters, die kein tab-spezifisches Symbol festgelegt haben.
Wenn Sie ein neues Symbol mit setIcon()
festlegen und sowohl die tabId
- als auch die windowId
-Optionen weglassen, wird das "globale Symbol" festgelegt. Das globale Symbol erscheint dann in allen Tabs, die kein tab-spezifisches Symbol festgelegt haben und deren Fenster kein Fenster-spezifisches Symbol hat.
Syntax
let settingIcon = browser.sidebarAction.setIcon(
details // object
)
Parameter
details
-
object
. Ein Objekt mit den folgenden Eigenschaften:imageData
Optional-
odersidebarAction.ImageDataType
object
. Dies ist entweder ein einzelnesImageData
-Objekt oder ein Wörterbuch-Objekt.Verwenden Sie ein Wörterbuch-Objekt, um mehrere
ImageData
-Objekte in verschiedenen Größen anzugeben, damit das Symbol nicht für ein Gerät mit unterschiedlicher Pixeldichte skaliert werden muss. IstimageData
ein Wörterbuch, ist der Wert jeder Eigenschaft einImageData
-Objekt und sein Name ist seine Größe, wie folgt:jslet settingIcon = browser.action.setIcon({ imageData: { 16: image16, 32: image32, }, });
Der Browser wählt das zu verwendende Bild je nach Pixeldichte des Bildschirms aus. Weitere Informationen hierzu finden Sie unter Symbolgrößen wählen.
path
Optional-
string
oderobject
. Dies ist entweder ein relativer Pfad zu einer Symboldatei oder ein Wörterbuch-Objekt.Verwenden Sie ein Wörterbuch-Objekt, um mehrere Symboldateien in verschiedenen Größen anzugeben, damit das Symbol nicht für ein Gerät mit unterschiedlicher Pixeldichte skaliert werden muss. Ist
path
ein Wörterbuch, ist der Wert jeder Eigenschaft ein relativer Pfad und sein Name ist seine Größe, wie folgt:jslet settingIcon = browser.action.setIcon({ path: { 16: "path/to/image16.jpg", 32: "path/to/image32.jpg", }, });
Der Browser wählt das zu verwendende Bild je nach Pixeldichte des Bildschirms aus. Weitere Informationen hierzu finden Sie unter Symbolgrößen wählen.
Wenn
path
ein leerer String ist, verwendet der Browser das Standardsymbol.Wenn
path
nicht leer ist, jedoch nicht auf eine Symboldatei verweist, wird das Symbol verborgen.Wenn
path
null
ist undtabId
angegeben wurde und der angegebene Tab ein tab-spezifisches Symbol festgelegt hatte: wird das tab-spezifische Symbol auf das globale Symbol (falls ein globales Symbol festgelegt ist) oder das Manifest-Symbol zurückgesetzt.Wenn
path
null
ist undtabId
weggelassen wurde und es ein globales Symbol gab, wird es auf das Manifest-Symbol zurückgesetzt. tabId
Optional-
integer
. Setzt das Symbol nur für den angegebenen Tab. windowId
Optional-
integer
. Setzt das Symbol nur für das angegebene Fenster.
- Wenn sowohl
windowId
als auchtabId
angegeben sind, schlägt die Funktion fehl und das Symbol wird nicht gesetzt. - Wenn sowohl
windowId
als auchtabId
weggelassen werden, wird das Symbol global gesetzt.
Rückgabewert
Ein Promise
, das ohne Argumente erfüllt wird, sobald das Symbol gesetzt wurde.
Browser-Kompatibilität
BCD tables only load in the browser
Beispiele
Der untenstehende Code wechselt das Sidebar-Symbol für den aktiven Tab, wenn der Benutzer auf eine Browseraktion klickt:
let on = false;
function toggle(tab) {
if (on) {
browser.sidebarAction.setIcon({
path: "off.svg",
tabId: tab.id,
});
on = false;
} else {
browser.sidebarAction.setIcon({
path: "on.svg",
tabId: tab.id,
});
on = true;
}
}
browser.browserAction.onClicked.addListener(toggle);
Hinweis: Diese API basiert auf der chrome.sidebarAction
-API von Opera.