commands
Typ | Object |
---|---|
Verpflichtend | Nein |
Manifest-Version | 2 oder höher |
Beispiel |
json
|
Verwenden Sie den commands
-Schlüssel, um eine oder mehrere Tastenkombinationen für Ihre Erweiterung zu definieren.
Jede Tastenkombination wird mit einem Namen, einer Tastenkombination und einer Beschreibung definiert. Nachdem Sie Befehle in der manifest.json
-Datei Ihrer Erweiterung definiert haben, können Sie die zugehörigen Tastenkombinationen mit der commands
-API überwachen.
Syntax
Der commands
-Schlüssel ist ein Objekt, und jeder Shortcut ist eine Eigenschaft davon. Der Name der Eigenschaft ist der Name des Shortcuts.
Der Wert jedes Shortcuts ist ein Objekt mit bis zu 2 Eigenschaften:
suggested_key
Optional: die Tastenkombination, die den Shortcut aktiviert.description
Optional: ein String, der den Shortcut beschreibt, d.h. was er 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 der Tastatur-Shortcut für den Befehl auf dieser Plattform, als ein String mit durch "+
" getrennten Tasten. Der Wert für "default"
wird auf allen Plattformen verwendet, die nicht explizit aufgeführt sind. Wenn "default"
nicht enthalten ist, hat der Befehl keinen Tastatur-Shortcut auf Plattformen, die nicht enthalten sind, es sei denn, ein Shortcut wird vom Benutzer oder durch die commands.update
-API 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 Shortcuts:
"toggle-feature"
, zugänglich mit Ctrl + Shift + U auf Linux und Alt + Shift + U auf allen anderen Plattformen."do-another-thing"
, zugänglich mit Ctrl + Shift + Y auf allen Plattformen."do-something-else"
, zugänglich mit Ctrl + Shift + P nur auf Linux, und kein Standard-Shortcut auf anderen Plattformen."do-nothing-yet"
, setzt keinen Tastatur-Shortcut, ermöglicht aber einen Shortcut vom Benutzer oder mit dercommands.update
-API zu setzen.
Sie können für die Befehle mit Code wie diesem lauschen, in diesem Fall für den "toggle-feature"
-Befehl:
browser.commands.onCommand.addListener((command) => {
if (command === "toggle-feature") {
console.log("Toggling the feature!");
}
});
Spezielle Shortcuts
Es gibt 4 spezielle Shortcuts mit Standardaktionen, für die das Ereignis commands.onCommand
nicht ausgelöst wird:
_execute_browser_action
: wirkt wie ein Klick auf eine Toolbar-Schaltfläche, die mitbrowserAction
erstellt oder im Schlüssel browser_action in der manifest.json-Datei angegeben wird._execute_action
: wirkt wie ein Klick auf eine Toolbar-Schaltfläche, die mitaction
erstellt oder im Schlüssel action in der manifest.json-Datei angegeben wird._execute_page_action
: wirkt wie ein Klick auf eine Adressleisten-Schaltfläche, die mitpageAction
erstellt oder im Schlüssel page_action in der manifest.json-Datei angegeben wird._execute_sidebar_action
: öffnet die Sidebar der Erweiterung, die im Schlüssel sidebar_action der manifest.json-Datei angegeben ist.
Die Verfügbarkeit dieser speziellen Shortcuts variiert zwischen 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 den Shortcut des Befehls _execute_browser_action
ändert, wird dieser automatisch auf den Befehl _execute_action
ü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 Tastenkombination, die die Browser-Aktion der Erweiterung klickt:
"commands": {
"_execute_browser_action": {
"suggested_key": {
"default": "Ctrl+Shift+Y"
}
}
}
Shortcut-Werte
Es gibt zwei gültige Formate für Shortcut-Tasten: als Tastenkombination oder als Medientaste.
Tastenkombinationen
Hinweis:
Auf Macs wird "Ctrl"
als "Command"
interpretiert, wenn Sie also tatsächlich "Ctrl"
benötigen, geben Sie "MacCtrl"
an.
Tastenkombinationen müssen aus 2 oder 3 Tasten bestehen:
-
Modifier (obligatorisch, außer bei Funktionstasten). Dies kann einer der folgenden sein:
"Ctrl"
,"Alt"
,"Command"
oder"MacCtrl"
. -
Zweit-Modifier (optional). Wenn angegeben, muss dies entweder
"Shift"
oder (für Firefox ≥ 63) einer von"Ctrl"
,"Alt"
,"Command"
oder"MacCtrl"
sein. Darf nicht der bereits als Hauptmodifier verwendete Modifier sein. -
Taste (obligatorisch). Dies kann eine der folgenden sein:
- die Buchstaben
A
–Z
- die Zahlen
0
–9
- die Funktionstasten
F1
–F12
Hinweis: Ab Firefox 135 können Benutzer die Tasten
F13
bisF19
einer Erweiterung zuweisen, indem sie Erweiterungs-Shortcuts verwalten verwenden. Ihre Erweiterung kann diese Tasten nicht aus der Manifest-Datei zuweisen. Sie kann sie jedoch mitcommands.update
zuweisen. Comma
,Period
,Home
,End
,PageUp
,PageDown
,Space
,Insert
,Delete
,Up
,Down
,Left
,Right
- die Buchstaben
Die Taste wird dann als ein String angegeben, der die Menge der Tastenwerte in der oben aufgeführten Reihenfolge enthält, getrennt durch "+
". Zum Beispiel, "Ctrl+Shift+Z"
.
Wenn eine Tastenkombination bereits vom Browser (wie "Ctrl+P"
) oder durch ein vorhandenes Add-on verwendet wird, können Sie diese nicht überschreiben. Sie können sie definieren, aber Ihr Ereignishandler wird nicht aufgerufen, wenn der Benutzer die Tastenkombination drückt.
Medientasten
Alternativ kann der Shortcut als eine dieser Medientasten angegeben werden:
"MediaNextTrack"
"MediaPlayPause"
"MediaPrevTrack"
"MediaStop"
Aktualisierung von Shortcuts
In Firefox kann Ihre Erweiterung die Einstellung der Shortcut-Tasten mithilfe von commands.update()
aktualisieren. Benutzer können Shortcuts mit der Option Erweiterungs-Shortcuts verwalten unter about:addons
aktualisieren, wie in diesem Video gezeigt. Ihre Erweiterung kann diese Option mit commands.openShortcutSettings()
öffnen.
In Chrome können Erweiterungen Shortcut-Tasten nicht programmatisch aktualisieren. Benutzer können Shortcuts unter chrome://extensions/shortcuts
ändern, das mit tabs.create()
geöffnet werden kann.
Safari unterstützt keine programmatische oder benutzergesteuerte Änderung von Shortcuts für Erweiterungen.
Beispiel
Definieren Sie einen Tastatur-Shortcut, der nur die Standard-Tastenkombination verwendet:
"commands": {
"toggle-feature": {
"suggested_key": {
"default": "Ctrl+Shift+Y"
},
"description": "Send a 'toggle-feature' event"
}
}
Definieren Sie zwei Tastatur-Shortcuts, einen mit einer plattformenspezifischen 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