--- title: commands slug: Mozilla/Add-ons/WebExtensions/manifest.json/commands tags: - Add-ons - Extensions - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/commands ---
{{AddonSidebar}}
Object
必須 いいえ
"commands": {
  "toggle-feature": {
    "suggested_key": {
      "default": "Ctrl+Shift+Y",
      "linux": "Ctrl+Shift+U"
    },
    "description": "Send a 'toggle-feature' event"
  }
}

commands キーを使うと拡張機能用のキーボードショートカットを定義できます。

それぞれのショートカットは名前、キーの組み合わせ、説明で定義されます。manifest.json で command を定義すると、関連したキーの組み合わせを {{WebExtAPIRef("commands")}} JavaScript API を用いてリッスンできます。

構文

commands キーはオブジェクトで、それぞれのショートカットはそのプロパティです。プロパティ名はショートカットの名前です。

それぞれのショートカット自身がオブジェクトで、最大2 つのプロパティを持ちます:

suggested_key プロパティ自身がオブジェクトで、次のプロパティ(これがすべてです)のいくつかを持ちます:

それぞれのプロパティの値はそのプラットフォーム用のキーボードショートカットで、"+" で分割されたキーの文字列で与えられます。"default" 用の値が明示的に載っていないすべてのプラットフォームで使われます。

例えば:

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

これは 2 つのショートカットを定義します:

次に、これらのコマンドの最初を下記のようにリッスンできます:

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

特殊なショートカット

特殊なショートカットが 3 つあります:

例えば、これはブラウザーアクションをクリックするキーの組み合わせを定義します:

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

ショートカットの値

ショートカットキーには2つのフォーマットがあります: キーの組み合わせとメディアキーです。

キーの組み合わせ

Mac では、"Ctrl" は"Command" と翻訳され、実際の "Ctrl"が必要ならば "MacCtrl"と指定します。

キーの組み合わせは 2 つか 3 つのキーからなります:

キーは、上記のリストの順に、"+" で区切られたキー値の組み合わせで与えられます: 例えば、 "Ctrl+Shift+Z".

キーの組み合わせがブラウザーや(例えば "Ctrl+P")、既存のアドオンですでに使われている場合、それを上書きできます。定義することもできますが、ユーザーが入力してもイベントハンドラーは呼ばれません。

メディアキー

あるいは、ショートカットキーは次のいずれかでも指定できます:

既定値だけを使って単一のショートカットを定義するには:

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

2つのショートカットを定義し、1つはプラットフォーム固有のキーの組み合わせとするには:

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

ブラウザ実装状況

{{Compat("webextensions.manifest.commands")}}