action

Typ Object
Verpflichtend Nein
Manifest-Version 3 oder höher
Beispiel
json
"action": {
  "default_icon": {
    "16": "button/geo-16.png",
    "32": "button/geo-32.png"
  },
  "default_title": "Whereami?",
  "default_popup": "popup/geo.html",
  "theme_icons": [{
    "light": "icons/geo-16-light.png",
    "dark": "icons/geo-16.png",
    "size": 16
  }, {
    "light": "icons/geo-32-light.png",
    "dark": "icons/geo-32.png",
    "size": 32
  }]
}

Eine Aktion ist eine Schaltfläche, die Ihre Erweiterung zur Symbolleiste des Browsers hinzufügt. Die Schaltfläche hat ein Symbol und kann optional ein Popup haben, dessen Inhalt mit HTML, CSS und JavaScript spezifiziert wird.

Dieser Schlüssel ersetzt browser_action in Manifest V3-Erweiterungen.

Sie müssen diesen Schlüssel angeben, um eine Schaltfläche in der Browser-Symbolleiste in Ihre Erweiterung aufzunehmen. Sobald er angegeben ist, können Sie die Schaltfläche programmgesteuert mit der action API manipulieren.

Wenn Sie ein Popup bereitstellen, wird dieses geöffnet, wenn der Benutzer auf die Schaltfläche klickt, und Ihr JavaScript, das im Popup läuft, kann mit der Interaktion des Benutzers umgehen. Wenn Sie kein Popup bereitstellen, wird beim Klicken auf die Schaltfläche ein Klick-Ereignis an die Hintergrundskripte Ihrer Erweiterung gesendet.

Syntax

Der action Schlüssel ist ein Objekt, das jede dieser Eigenschaften aufweisen kann, die alle optional sind:

Name Typ Beschreibung
browser_style
Optional
Veraltet
Boolean

Optional, standardmäßig false.

Setzen Sie browser_style nicht auf true: Die Unterstützung dafür wurde in Manifest V3 in Firefox 118 entfernt. Siehe Manifest V3 Migration für browser_style.

default_area
Optional
String

Definiert den Teil des Browsers, in dem die Schaltfläche zunächst platziert wird. Dies ist ein String, der einen von vier Werten annehmen kann:

  • "navbar": die Schaltfläche wird in der Haupt-Symbolleiste des Browsers, neben der URL-Leiste, platziert.
  • "menupanel": die Schaltfläche wird in einem Popup-Panel platziert.
  • "tabstrip": die Schaltfläche wird in der Symbolleiste platziert, die die Browser-Tabs enthält.
  • "personaltoolbar": die Schaltfläche wird in der Lesezeichen-Symbolleiste platziert.

Diese Eigenschaft wird nur in Firefox unterstützt.

Diese Eigenschaft ist optional und hat standardmäßig den Wert "menupanel".

Firefox merkt sich die default_area-Einstellung für eine Erweiterung, auch wenn diese Erweiterung deinstalliert und anschließend neu installiert wird. Um den Browser zu zwingen, einen neuen Wert für default_area anzuerkennen, muss die ID der Erweiterung geändert werden.

Eine Erweiterung kann den Ort der Schaltfläche nicht ändern, nachdem sie installiert wurde, aber der Benutzer kann möglicherweise die Schaltfläche über den integrierten UI-Anpassungsmechanismus des Browsers verschieben.

default_icon
Optional
Object oder String

Verwenden Sie dies, um ein oder mehrere Symbole für die Aktion anzugeben. Das Symbol wird standardmäßig in der Browser-Symbolleiste angezeigt.

Symbole werden als URLs relativ zur manifest.json-Datei selbst angegeben.

Sie können eine einzige Symboldatei angeben, indem Sie hier einen String angeben:

json
"default_icon": "path/to/geo.svg"

Um mehrere Symbole in verschiedenen Größen anzugeben, geben Sie hier ein Objekt an. Der Name jeder Eigenschaft ist die Höhe des Symbols in Pixeln und muss in einen Integer umwandelbar sein. Der Wert ist die URL. Zum Beispiel:

json
    "default_icon": {
      "16": "path/to/geo-16.png",
      "32": "path/to/geo-32.png"
    }

Sie können nicht mehrere Symbole mit denselben Größen angeben.

Siehe Auswahl von Symbolgrößen für weitere Anleitung dazu.

default_popup
Optional
String

Der Pfad zu einer HTML-Datei, die die Spezifikation des Popups enthält.

Die HTML-Datei kann CSS- und JavaScript-Dateien mit <link> und <script> -Elementen einbinden, genau wie eine normale Webseite. Allerdings muss <script> das src Attribut haben, um eine Datei zu laden. Verwenden Sie kein <script> mit eingebettetem Code, da sonst ein verwirrender Fehler bei der Content Violation Policy auftritt.

Anders als eine normale Webseite kann JavaScript, das im Popup läuft, auf alle WebExtension APIs zugreifen (natürlich vorbehaltlich, dass die Erweiterung über die entsprechenden Berechtigungen verfügt).

Dies ist eine lokalisierbare Eigenschaft.

default_title
Optional
String

Tooltip für die Schaltfläche, das angezeigt wird, wenn der Benutzer den Mauszeiger darüber bewegt. Wenn die Schaltfläche zum Menüpanel des Browsers hinzugefügt wird, wird dies auch unter dem App-Symbol angezeigt.

Dies ist eine lokalisierbare Eigenschaft.

theme_icons
Optional
Array

Diese Eigenschaft ermöglicht es Ihnen, je nach Theme unterschiedliche Symbole anzugeben, abhängig davon, ob Firefox erkennt, dass das Theme dunklen oder hellen Text verwendet.

Wenn diese Eigenschaft vorhanden ist, ist es ein Array, das mindestens ein ThemeIcons Objekt enthält. Ein ThemeIcons Objekt enthält drei verpflichtende Eigenschaften:

"dark"
Eine URL, die auf ein Symbol zeigt. Dieses Symbol wird angezeigt, wenn ein Theme mit dunklem Text aktiv ist (wie z.B. das Firefox Light Theme, und das Standard-Theme, wenn kein default_icon angegeben ist).
"light"
Eine URL, die auf ein Symbol zeigt. Dieses Symbol wird angezeigt, wenn ein Theme mit hellem Text aktiv ist (wie z.B. das Firefox Dark Theme).
"size"
Die Größe der beiden Symbole in Pixeln.

Symbole werden als URLs relativ zur manifest.json-Datei angegeben.

Sie sollten 16x16 und 32x32 (für Retina-Display) ThemeIcons bereitstellen.

Auswahl von Symbolgrößen

Das Aktionssymbol muss möglicherweise in unterschiedlichen Größen in verschiedenen Kontexten angezeigt werden:

  • Das Symbol wird in der Browser-Symbolleiste angezeigt. Ältere Versionen von Firefox unterstützten die Option, das Symbol im Menüpanel des Browsers (dem Panel, das sich öffnet, wenn der Benutzer auf das "Hamburger"-Symbol klickt) zu platzieren. In diesen Versionen von Firefox war das Symbol im Menüpanel größer als das Symbol in der Symbolleiste.
  • Auf einem hochauflösenden Bildschirm wie einem Retina-Display müssen Symbole doppelt so groß sein.

Wenn der Browser kein Symbol der richtigen Größe in einer bestimmten Situation finden kann, wählt er die am besten passende Option und skaliert sie. Eine Skalierung kann das Symbol verschwommen erscheinen lassen, daher ist es wichtig, Symbole sorgfältig auszuwählen.

Es gibt zwei Hauptansätze. Sie können ein einzelnes Symbol als SVG-Datei liefern, und es wird korrekt skaliert:

json
"default_icon": "path/to/geo.svg"

Alternativ können Sie mehrere Symbole in verschiedenen Größen bereitstellen, und der Browser wählt die am besten passende Option.

In Firefox:

Sie können Symbole, die genau auf beiden normalen und Retina-Displays passen, festlegen, indem Sie drei Symboldateien bereitstellen und sie so spezifizieren:

json
"default_icon": {
  "16": "path/to/geo-16.png",
  "32": "path/to/geo-32.png",
  "64": "path/to/geo-64.png"
}

Wenn Firefox keine exakte Übereinstimmung mit der gewünschten Größe finden kann, wählt es das kleinste angegebene Symbol, das größer als die ideale Größe ist. Wenn alle Symbole kleiner als die ideale Größe sind, wählt es das größte angegebene Symbol.

Beispiel

json
"action": {
  "default_icon": {
    "16": "button/geo-16.png",
    "32": "button/geo-32.png"
  }
}

Eine Aktion mit nur einem Symbol, das in 2 Größen angegeben ist. Die Hintergrundskripte der Erweiterung können Klick-Ereignisse empfangen, wenn der Benutzer auf das Symbol klickt, mit einem Code wie diesem:

js
browser.action.onClicked.addListener(handleClick);
json
"action": {
  "default_icon": {
    "16": "button/geo-16.png",
    "32": "button/geo-32.png"
  },
  "default_title": "Whereami?",
  "default_popup": "popup/geo.html"
}

Eine Aktion mit einem Symbol, einem Titel und einem Popup. Das Popup wird angezeigt, wenn der Benutzer auf die Schaltfläche klickt.

Browser-Kompatibilität