制作可自定义的键盘快捷键 chrome 扩展

make customizable keyboard shortcuts chrome extensions

我正在制作一个 chrome 扩展,使用键盘快捷键打开 pop-up,下面的代码工作正常。只是我希望用户能够通过 options.html 页面指定键盘快捷键来打开 browser action。我该怎么做?

我更愿意使用带允许快捷键的 dropdownCtrl+Shift+AltCtrl+ShiftCtrl+AltCtrlAlt) 与 textbox 混合,只允许输入一个键。

最后一部分是一个子问题,但这里的主要内容是:

如何在选项页面中创建可自定义的键盘快捷键?

Manifest.json:

|  ...  |
"browser_action": {
  "default_icon": "png/Icon-128.png",
  "default_title": "Gamez.io",  
  "default_popup": "popup.html"
},
"background": {
  "scripts": ["background.js"],
  "persistent": false
},
"permissions": [
   "activeTab",
    "tabs"
],
"commands": {
  "_execute_browser_action": {
    "suggested_key": {
      "windows": "Alt+X",
      "mac": "Alt+X",
      "chromeos": "Alt+X",
      "linux": "Alt+X"
    }
  }
}

我想出了一个办法...好吧...

步骤:

  1. 创建一个 content.js 文件并将其列在您的 manifest 中。
  2. 然后将以下代码添加到您的 content.js 文件中:

content.js:

window.onkeyup = function(e) {
  if (e.which == 69) {
    window.alert('You pressed \'e\' !');
  }
};

然后查看 Here 如何使用 JS 自定义 keyboard-shortcuts

  1. 使用 JSON 文件和 chrome.setlocalstorage(类似的东西 [仍在努力])保存来自 options.html.
  2. 的用户输入

我当前的问题:Here我怎么触发Browser_Action!?

没有 clean/ideal 通过扩展自定义快捷方式的方法,因为这些快捷方式是通过清单设置的,无法通过编程方式更改。但是,您在清单中描述的快捷方式可以由用户在 chrome://extensions 页面中手动修改。