Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 ein Button, den Ihre Erweiterung zur Browser-Symbolleiste hinzufügt. Der Button hat ein Icon 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 spezifizieren, um einen Browser-Symbolleisten-Button in Ihrer Erweiterung einzubeziehen. Wenn angegeben, können Sie den Button programmgesteuert mit der action API manipulieren.

Wenn Sie ein Popup bereitstellen, wird das Popup geöffnet, wenn der Benutzer auf den Button klickt, und Ihr JavaScript, das im Popup ausgeführt wird, kann die Interaktion des Benutzers damit handhaben. Wenn Sie kein Popup bereitstellen, wird ein Klickereignis an die Hintergrundskripte Ihrer Erweiterung gesendet, wenn der Benutzer auf den Button klickt.

Syntax

Der action-Schlüssel ist ein Objekt, das alle dieser optionalen Eigenschaften haben kann:

Name Typ Beschreibung
browser_style
Optional
Veraltet
Boolean

Optional, standardmäßig false.

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

default_area
Optional
String

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

  • "navbar": Der Button wird in der Hauptsymbolleiste des Browsers, neben der URL-Leiste, platziert.
  • "menupanel": Der Button wird in einem Popup-Panel platziert.
  • "tabstrip": Der Button wird in der Symbolleiste platziert, die die Browser-Tabs enthält.
  • "personaltoolbar": Der Button 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 dazu zu zwingen, einen neuen Wert für default_area zu erkennen, muss die ID der Erweiterung geändert werden.

Eine Erweiterung kann den Standort des Buttons nach der Installation nicht ändern, aber der Benutzer kann in der Lage sein, den Button mit dem integrierten UI-Anpassungsmechanismus des Browsers zu verschieben.

default_icon
Optional
Object oder String

Verwenden Sie dies, um ein oder mehrere Icons für die Aktion zu spezifizieren. Das Icon wird standardmäßig in der Browser-Symbolleiste angezeigt.

Icons werden als URLs relativ zur manifest.json-Datei selbst spezifiziert.

Sie können eine einzelne Icon-Datei angeben, indem Sie hier einen String liefern:

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

Um mehrere Icons in verschiedenen Größen zu spezifizieren, geben Sie hier ein Objekt an. Der Name jeder Eigenschaft ist die Höhe des Icons in Pixeln und muss in einen Integer konvertierbar 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 Icons gleicher Größe spezifizieren.

Sehen Sie Wahl der Icon-Größen für weitere Hinweise 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 unter Verwendung von <link> und <script> Elementen einbinden, genau wie eine normale Webseite. Allerdings muss <script> das src Attribut haben, um eine Datei zu laden. Verwenden Sie nicht <script> mit eingebettetem Code, da Sie sonst einen verwirrenden Content-Violation-Policy-Fehler erhalten.

Anders als bei einer normalen Webseite kann JavaScript, das im Popup ausgeführt wird, auf alle WebExtension-APIs zugreifen (natürlich vorausgesetzt, die Erweiterung hat die entsprechenden Berechtigungen).

Dies ist eine lokalisierbare Eigenschaft.

default_title
Optional
String

Tooltip für den Button, der angezeigt wird, wenn der Benutzer den Mauszeiger darüber bewegt. Wenn der Button zum Menü-Panel des Browsers hinzugefügt wird, wird dies auch unter dem App-Icon angezeigt.

Dies ist eine lokalisierbare Eigenschaft.

theme_icons
Optional
Array

Diese Eigenschaft ermöglicht es Ihnen, je nach Verwendung eines dunklen oder hellen Textes im Theme unterschiedliche Icons zu spezifizieren.

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

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

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

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

Wahl der Icon-Größen

Das Icon der Aktion muss möglicherweise in verschiedenen Größen in verschiedenen Kontexten angezeigt werden:

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

Wenn der Browser kein Icon in der richtigen Größe in einer bestimmten Situation finden kann, wählt er die beste Übereinstimmung und skaliert diese. Skalierung kann dazu führen, dass das Icon unscharf aussieht, daher ist es wichtig, die Icon-Größen sorgfältig auszuwählen.

Es gibt zwei Hauptansätze dafür. Sie können ein einzelnes Icon als SVG-Datei bereitstellen, und es wird korrekt skaliert:

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

Alternativ können Sie mehrere Icons in verschiedenen Größen bereitstellen, und der Browser wählt die beste Übereinstimmung.

In Firefox:

So können Sie Icons angeben, die sowohl auf normalen als auch auf Retina-Displays exakt übereinstimmen, indem Sie drei Icon-Dateien bereitstellen und sie folgendermaßen 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 genaue Übereinstimmung für die gewünschte Größe finden kann, wird es das kleinste angegebenen Icon wählen, das größer als die ideale Größe ist. Wenn alle Icons kleiner als die ideale Größe sind, wird es das größte angegebene Icon wählen.

Beispiel

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

Eine Aktion mit nur einem Icon, das in 2 Größen angegeben ist. Die Hintergrundskripte der Erweiterung können Klickereignisse empfangen, wenn der Benutzer auf das Icon klickt, indem sie Code wie diesen verwenden:

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 Icon, einem Titel und einem Popup. Das Popup wird angezeigt, wenn der Benutzer auf den Button klickt.

Browser-Kompatibilität