We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Type Objet
Obligatoire Non
Exemple
"commands": {
  "toggle-feature": {
    "suggested_key": {
      "default": "Ctrl+Shift+Y",
      "linux": "Ctrl+Shift+U"
    },
    "description": "Send a 'toggle-feature' event"
  }
}

Utilisez la clé commands pour définir un ou plusieurs raccourcis clavier pour votre extension.

Chaque raccourci est défini avec un nom, une combinaison de touches et une description. Une fois que vous avez défini certaines commandes dans manifest.json, vous pouvez suivre les combinaisons de touches associées proposées par l'API JavaScript commands.

Syntaxe

La clé commands est un objet et chaque raccourci est une propriété de celui-ci. Le nom de la propriété est le nom du raccourci.

Chaque raccourci est lui-même un objet, qui possède jusqu'à deux propriétés :

  • suggested_key : définit la combinaison de touches
  • description : une chaîne qui décrit ce raccourci

La propriété suggested_key est elle-même un objet pouvant avoir l'une des propriétés suivantes et qui sont toutes des chaînes :

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

La valeur de chaque propriété est le raccourci clavier pour la commande sur la plateforme donnée, sous la forme d'une chaîne contenant les touches séparées par "+". La valeur de "default" est utilisée sur toutes les plateformes qui ne sont pas listées explicitement.

Par exemple :

"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"
    }
  }
}

Cela définit deux raccourcis :

  • une nommée "toggle-feature", accessible à l'aide de Ctrl+Shift+U sur Linux et Alt+Shift+U sur toutes les autres plateformes
  • une nommée "do-another-thing", accessible à l'aide de Ctrl+Shift+Y sur toutes les plateformes.

Vous pouvez ensuite répondre à la première de ces commandes avec le code  suivant :

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

Raccourcis spéciaux

Il existe trois raccourcis spéciaux :

  • _execute_browser_action : fonctionne comme un clic sur une action de navigateur de l'extension.
  • _execute_page_action : fonctionne comme un clic sur une action de page de l'extension.
  • _execute_sidebar_action : ouvre le panneau latéral de l'extension. Uniquement pris en charge par Firefox et uniquement à partir de Firefox version 54.

Par exemple, cela définit une combinaison de touches pour cliquer sur l'action de navigateur de l'extension :

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

Les valeurs de raccourci

Il existe deux formats valides pour les touches de raccourci : comme une combinaison de touches ou comme une clé multimédia.

Combinaisons de touches

Sur Mac, "Ctrl" est interprété comme "Command", donc si vous avez réellement besoin de "Ctrl", spécifiez "MacCtrl".

Les combinaisons de touches doivent être composées de deux ou trois touches :

  • modificateur (obligatoire, à l'exception des touches de fonction). Il peut s'agir de : "Ctrl", "Alt", "Command", "MacCtrl".
  • second modificateur (facultatif). S'il est fourni, cela doit être "Shift".
  • touche (obligatoire). Ce peut être l'une des touches :
    • lettres A-Z
    • chiffres 0-9
    • fonctions F1-F12
    • Comma (virgule), Period (point), Home (début), End (Fin), PageUp (page précédente), PageDown (page suivante), Space (espace), Insert (inser), Delete (Suppr), Up (haut), Down (bas), Left (gauche), Right (droite)

Touches médias

Une alternative est de spécifier le raccourci comme l'une des touches de média suivantes :

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

Exemple

Définissez un seul raccourci en utilisant uniquement la valeur par défaut :

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

Définissez deux raccourcis, un avec une combinaison de touches spécifique à la plateforme :

"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"
    }
  }
}

Compatibilité du navigateur

ChromeEdgeFirefoxFirefox for AndroidOpera
Support simple Oui Non48 Non Oui
F1-F12 Oui Non53 Non Oui
_execute_sidebar_action Non Non54 Non Non
global Oui Non Non Non Oui
MediaNextTrack Oui Non Non Non Oui
MediaPlayPause Oui Non Non Non Oui
MediaPrevTrack Oui Non Non Non Oui
MediaStop Oui Non Non Non Oui

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : Mozinet, edrflt, loella16, hellosct1
Dernière mise à jour par : Mozinet,