commands

Typ Object
Verpflichtend Nein
Manifest-Version 2 oder höher
Beispiel
json
"commands": {
  "toggle-feature": {
    "suggested_key": {
      "default": "Ctrl+Shift+Y",
      "linux": "Ctrl+Shift+U"
    },
    "description": "Send a 'toggle-feature' event"
  }
}

Verwenden Sie den Schlüssel commands, um eine oder mehrere Tastenkombinationen für Ihre Erweiterung zu definieren.

Jede Tastenkombination wird mit einem Namen, einer Tastenkombination und einer Beschreibung definiert. Sobald Sie Befehle in der manifest.json Ihrer Erweiterung definiert haben, können Sie mit der commands JavaScript-API die zugehörigen Tastenkombinationen abhören.

Syntax

Der Schlüssel commands ist ein Objekt, und jede Tastenkombination ist eine Eigenschaft davon. Der Name der Eigenschaft ist der Name des Tastenkürzels.

Der Wert jedes Tastenkürzels ist ein Objekt mit bis zu 2 Eigenschaften:

  1. suggested_key: die Tasten-Kombination, die das Kürzel aktiviert.
  2. description: eine Zeichenkette, die das Kürzel beschreibt; d.h., was es macht.

Die Eigenschaft suggested_key ist ein Objekt mit einer der folgenden Eigenschaften (alle Zeichenketten):

  • "default"
  • "mac"
  • "linux"
  • "windows"
  • "chromeos"
  • "android"
  • "ios"

Der Wert jeder Eigenschaft ist das Tastenkürzel für den Befehl auf dieser Plattform, als Zeichenfolge, die Tasten enthält, getrennt durch "+". Der Wert für "default" wird auf allen Plattformen verwendet, die nicht explizit aufgeführt sind.

Zum Beispiel:

json
"commands": {
  "toggle-feature": {
    "suggested_key": {
      "default": "Alt+Shift+U",
      "linux": "Ctrl+Shift+U"
    },
    "description": "Send a 'toggle-feature' event to the extension"
  },
  "do-another-thing": {
    "suggested_key": {
      "default": "Ctrl+Shift+Y"
    }
  }
}

Dieses JSON definiert 2 Kürzel:

  1. "toggle-feature", aufgerufen mit Ctrl + Shift + U auf Linux, und Alt + Shift + U auf allen anderen Plattformen.
  2. "do-another-thing", aufgerufen mit Ctrl + Shift + Y auf allen Plattformen.

Sie könnten dann den "toggle-feature" Befehl mit einem Code wie diesem abhören:

js
browser.commands.onCommand.addListener((command) => {
  if (command === "toggle-feature") {
    console.log("Toggling the feature!");
  }
});

Besondere Kürzel

Es gibt 4 besondere Kürzel mit Standardaktionen, für die das commands.onCommand-Ereignis nicht ausgelöst wird:

Die Verfügbarkeit dieser speziellen Kürzel variiert zwischen Manifest-Versionen und Browsern:

Manifest V2 Manifest V3
_execute_browser_action Ja Nein
_execute_action Nein Ja
_execute_page_action Ja Nur Firefox
_execute_sidebar_action Nur Firefox Nur Firefox

Hinweis: Wenn der Benutzer das Kürzel des _execute_browser_action-Befehls ändert, wird es automatisch auf den _execute_action-Befehl übertragen, wenn die Erweiterung von Manifest V2 zu V3 migriert. Dies wurde in Chrome 111 und Firefox 127 implementiert.

Zum Beispiel definiert dieses JSON eine Tasten-Kombination, die die Browseraktion der Erweiterung anklickt:

json
"commands": {
  "_execute_browser_action": {
    "suggested_key": {
      "default": "Ctrl+Shift+Y"
    }
  }
}

Werte für Kürzel

Es gibt zwei gültige Formate für Tastaturkürzel: als Tastenkombination oder als Medientaste.

Tastenkombinationen

Hinweis: Auf Macs wird "Ctrl" als "Command" interpretiert, wenn Sie also tatsächlich "Ctrl" benötigen, spezifizieren Sie "MacCtrl".

Tastenkombinationen müssen aus 2 oder 3 Tasten bestehen:

  1. Modifier (verpflichtend, außer bei Funktionstasten). Dies kann eine der folgenden sein: "Ctrl", "Alt", "Command", oder "MacCtrl".

  2. Sekundärer Modifier (optional). Wenn angegeben, muss dies entweder "Shift" oder (für Firefox ≥ 63) einer von "Ctrl", "Alt", "Command", oder "MacCtrl" sein. Darf nicht der Modifier sein, der bereits als Hauptmodifier verwendet wird.

  3. Taste (verpflichtend). Dies kann eine der folgenden sein:

    • die Buchstaben AZ
    • die Zahlen 09
    • die Funktionstasten F1F12
    • Comma, Period, Home, End, PageUp, PageDown, Space, Insert, Delete, Up, Down, Left, Right

Die Taste wird dann als Zeichenfolge angegeben, die die Menge der Tastenwerte, in der oben genannten Reihenfolge, getrennt durch "+" enthält. Zum Beispiel "Ctrl+Shift+Z".

Wenn eine Tastenkombination bereits vom Browser (wie "Ctrl+P") oder von einem bestehenden Add-On verwendet wird, können Sie diese nicht überschreiben. Sie können es definieren, aber Ihr Ereignis-Handler wird nicht aufgerufen, wenn der Benutzer die Tastenkombination drückt.

Medientasten

Alternativ kann das Kürzel als eine der folgenden Medientasten angegeben werden:

  • "MediaNextTrack"
  • "MediaPlayPause"
  • "MediaPrevTrack"
  • "MediaStop"

Aktualisieren von Kürzeln

Kürzel können über commands.update() aktualisiert werden. Benutzer können Kürzel auch über die Option "Erweiterungskürzel verwalten" unter about:addons in Firefox aktualisieren, wie in diesem Video gezeigt. In Chrome können Benutzer Kürzel unter chrome://extensions/shortcuts ändern.

Beispiel

Definieren Sie ein einziges Tastaturkürzel, nur mit der Standard-Tastenkombination:

json
"commands": {
  "toggle-feature": {
    "suggested_key": {
      "default": "Ctrl+Shift+Y"
    },
    "description": "Send a 'toggle-feature' event"
  }
}

Definieren Sie zwei Tastaturkürzel, eines mit einer plattformspezifischen Tastenkombination:

json
"commands": {
  "toggle-feature": {
    "suggested_key": {
      "default": "Alt+Shift+U",
      "linux": "Ctrl+Shift+U"
    },
    "description": "Send a 'toggle-feature' event"
  },
  "do-another-thing": {
    "suggested_key": {
      "default": "Ctrl+Shift+Y"
    }
  }
}

Browser-Kompatibilität

BCD tables only load in the browser