commands
Typ | Object |
---|---|
Erforderlich | Nein |
Manifest-Version | 2 oder höher |
Beispiel |
json
|
Verwenden Sie den Schlüssel commands
, um eine oder mehrere Tastenkombinationen für Ihre Erweiterung zu definieren.
Jede Tastenkombination wird mit einem Namen, einer Tastenkomination und einer Beschreibung definiert. Nachdem die Befehle in der manifest.json
Ihrer Erweiterung definiert wurden, können Sie mit der commands
API auf ihre zugehörigen Tastenkombinationen lauschen.
Syntax
Der Schlüssel commands
ist ein Objekt, und jede Verknüpfung ist eine Eigenschaft davon. Der Name der Eigenschaft ist der Name der Verknüpfung.
Der Wert jeder Verknüpfung ist ein Objekt mit bis zu 2 Eigenschaften:
suggested_key
Optional: die Kombination von Tasten, die die Verknüpfung aktiviert.description
Optional: ein String, der die Verknüpfung beschreibt, d.h. was sie tut.
Die Eigenschaft suggested_key
ist ein Objekt mit beliebigen oder keinen dieser Eigenschaften (alle Strings):
"default"
"mac"
"linux"
"windows"
"chromeos"
"android"
"ios"
Der Wert jeder Eigenschaft ist die Tastenkombination für den Befehl auf dieser Plattform, als String, der Tasten enthält, getrennt durch "+
". Der Wert von "default"
wird auf allen Plattformen verwendet, die nicht explizit aufgeführt sind. Wenn "default"
nicht enthalten ist, hat der Befehl auf keiner Plattform eine Tastenkombination, es sei denn, es wird vom Benutzer oder über die commands.update
API eine Tastenkombination konfiguriert.
Zum Beispiel:
"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"
}
},
"do-something-else": {
"suggested_key": {
"linux": "Ctrl+Shift+P"
}
},
"do-nothing-yet": {}
}
Dieses JSON definiert diese Verknüpfungen:
"toggle-feature"
, erreichbar mit Ctrl + Shift + U unter Linux und Alt + Shift + U auf allen anderen Plattformen."do-another-thing"
, erreichbar mit Ctrl + Shift + Y auf allen Plattformen."do-something-else"
, erreichbar mit Ctrl + Shift + P nur unter Linux und keine Standardverknüpfung auf anderen Plattformen."do-nothing-yet"
, legt keine Tastenkombination fest, ermöglicht aber dem Benutzer, eine Verknüpfung zu setzen oder mit dercommands.update
API.
Sie können für die Befehle mit einem Code wie diesem lauschen, in diesem Fall für den Befehl "toggle-feature"
:
browser.commands.onCommand.addListener((command) => {
if (command === "toggle-feature") {
console.log("Toggling the feature!");
}
});
Spezielle Verknüpfungen
Es gibt 4 spezielle Verknüpfungen mit Standardaktionen, für die das commands.onCommand
Ereignis nicht ausgelöst wird:
_execute_browser_action
: Funktioniert wie ein Klick auf eine Symbolleistenschaltfläche, die mitbrowserAction
erstellt wurde oder im Schlüssel browser_action in der manifest.json angegeben ist._execute_action
: Funktioniert wie ein Klick auf eine Symbolleistenschaltfläche, die mitaction
erstellt wurde oder im Schlüssel action in der manifest.json angegeben ist._execute_page_action
: Funktioniert wie ein Klick auf eine Adressleistenschaltfläche, die mitpageAction
erstellt wurde oder im Schlüssel page_action in der manifest.json angegeben ist._execute_sidebar_action
: Öffnet die Seitenleiste der Erweiterung, die im Schlüssel sidebar_action in der manifest.json angegeben ist.
Die Verfügbarkeit dieser speziellen Verknüpfungen variiert je nach Manifest-Versionen und Browsern, wie folgt:
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 die Verknüpfung des _execute_browser_action
-Befehls ändert, wird sie automatisch auf den _execute_action
-Befehl übertragen, wenn die Erweiterung von Manifest V2 auf V3 migriert. Dies wurde in Chrome 111 und Firefox 127 implementiert.
Zum Beispiel definiert dieses JSON eine Tastenkomination, die wie ein Klick auf die Browseraktion der Erweiterung wirkt:
"commands": {
"_execute_browser_action": {
"suggested_key": {
"default": "Ctrl+Shift+Y"
}
}
}
Werte der Verknüpfung
Es gibt zwei gültige Formate für Verknüpfungstasten: als Tastenkombination oder als Media-Taste.
Tastenkombinationen
Hinweis:
Auf Macs wird "Ctrl"
als "Command"
interpretiert. Wenn Sie tatsächlich "Ctrl"
benötigen, geben Sie "MacCtrl"
an.
Tastenkombinationen müssen aus 2 oder 3 Tasten bestehen:
-
Modifikator (obligatorisch, außer bei Funktionstasten). Dies kann einer der folgenden sein:
"Ctrl"
,"Alt"
,"Command"
oder"MacCtrl"
. -
Sekundärer Modifikator (optional). Falls vorhanden, muss dies entweder
"Shift"
oder (für Firefox ≥ 63) einer von"Ctrl"
,"Alt"
,"Command"
oder"MacCtrl"
sein. Darf nicht der bereits als Hauptmodifikator verwendete Modifikator sein. -
Taste (obligatorisch). Dies kann eine der folgenden sein:
- die Buchstaben
A
–Z
- die Zahlen
0
–9
- die Funktionstasten
F1
–F12
Comma
,Period
,Home
,End
,PageUp
,PageDown
,Space
,Insert
,Delete
,Up
,Down
,Left
,Right
- die Buchstaben
Die Taste wird dann als String angegeben, der die Reihe von Tastenwerten enthält, in der obigen Reihenfolge, getrennt durch "+
". Zum Beispiel, "Ctrl+Shift+Z"
.
Wenn eine Tastenkombination bereits vom Browser verwendet wird (wie "Ctrl+P"
) oder von einem bestehenden Add-On, können Sie sie nicht überschreiben. Sie können sie definieren, aber Ihr Ereignishandler wird nicht aufgerufen, wenn der Benutzer die Tastenkombination drückt.
Media-Tasten
Alternativ kann die Verknüpfung als eine der folgenden Media-Tasten angegeben werden:
"MediaNextTrack"
"MediaPlayPause"
"MediaPrevTrack"
"MediaStop"
Aktualisierung der Verknüpfungen
Verknüpfungen können über commands.update()
aktualisiert werden. Benutzer können auch Verknüpfungen über die Option „Erweiterungsverknüpfungen verwalten“ in about:addons
in Firefox aktualisieren, wie in diesem Video gezeigt. In Chrome können Benutzer Verknüpfungen unter chrome://extensions/shortcuts
ändern.
Beispiel
Definieren Sie eine einzelne Tastenkombination, die nur die Standardtastenkombination verwendet:
"commands": {
"toggle-feature": {
"suggested_key": {
"default": "Ctrl+Shift+Y"
},
"description": "Send a 'toggle-feature' event"
}
}
Definieren Sie zwei Tastenkombinationen, eine mit einer plattformspezifischen Tastenkombination:
"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