Object
必須 いいえ
"commands": {
  "toggle-feature": {
    "suggested_key": {
      "default": "Ctrl+Shift+Y",
      "linux": "Ctrl+Shift+U"
    },
    "description": "Send a 'toggle-feature' event"
  }
}

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

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

構文

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

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

  • suggested_key: これはキーの組み合わせを定義します
  • description: このショートカットを説明する文字

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

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

それぞれのプロパティの値はそのプラットフォーム用のキーボードショートカットで、"+" で分割されたキーの文字列で与えられます。"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 つのショートカットを定義します:

  • 1 つは "toggle-feature" という名前で、Linux では Ctrl+Shift+U 、その他のプラットフォームでは Alt+Shift+U でアクセスされます。
  • 1 つは "do-another-thing" という名前で、すべてのプラットフォームで Ctrl+Shift+Y でアクセスされます。

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

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

特殊なショートカット

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

  • _execute_browser_action: 拡張機能のブラウザーアクションのクリックのように動作します。
  • _execute_page_action: 拡張機能のページアクションのクリックのように動作します。
  • _execute_sidebar_action: 拡張機能のサイドバーを開きます。Firefox のバージョン 54 以降のみでサポートされます。

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

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

ショートカットの値

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

キーの組み合わせ

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

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

  • modifier (ファンクションキー以外では必須)。これは次のいずれかです: "Ctrl", "Alt", "Command", "MacCtrl".
  • secondary modifier (オプション)。指定する場合は"Shift"でなければなりません。
  • key (必須)。これは次のいずれかです:
    • A-Z の範囲の文字
    • 0-9 の範囲の数字
    • ファンクションキー F1-F12
    • カンマ, ピリオド, Home, End, PageUp, PageDown, スペース, Insert, Delete, 上矢印, 下矢印, 左矢印, 右矢印

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

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

メディアキー

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

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

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

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

ブラウザ実装状況

ChromeEdgeFirefoxFirefox for AndroidOpera
基本対応 あり なし48 なし あり
F1-F12 あり なし53 なし あり
_execute_sidebar_action なし なし54 なし なし
global あり なし なし なし あり
MediaNextTrack あり なし なし なし あり
MediaPlayPause あり なし なし なし あり
MediaPrevTrack あり なし なし なし あり
MediaStop あり なし なし なし あり

ドキュメントのタグと貢献者

このページの貢献者: dlwe, Uemmra3
最終更新者: dlwe,