构建可通过热键激活的Chrome扩展程序

时间:2016-12-06 17:52:23

标签: javascript google-chrome google-chrome-extension hotkeys

哪个Chrome API允许我编写可以由非冲突热键激活的扩展程序(例如 Ctrl - Shift - B ) ,或通过触控板手势(在Mac上)?

我正在查看Chrome extension APIChromium个文档,但尚未找到任何内容。

1 个答案:

答案 0 :(得分:2)

可以使用 manifest.json commands添加键盘快捷键。您可以为通用操作,浏览器操作按钮(_execute_browser_action)或页面操作按钮(_execute_page_action)添加键盘快捷键。

Chrome documentation中包含的示例 manifest.json 内容(稍作修改,以反映您对 Ctrl - Shift <的请求 - ):

"commands": {
  "toggle-feature-foo": {
    "suggested_key": {
      "default": "Ctrl+Shift+B",
      "mac": "Command+Shift+B"
    },
    "description": "Toggle feature foo"
  },
  "_execute_browser_action": {
    "suggested_key": {
      "windows": "Ctrl+Shift+Y",
      "mac": "Command+Shift+Y",
      "chromeos": "Ctrl+Shift+U",
      "linux": "Ctrl+Shift+J"
    }
  },
  "_execute_page_action": {
    "suggested_key": {
      "default": "Ctrl+Shift+E",
      "windows": "Alt+Shift+P",
      "mac": "Alt+Shift+P"
    }
  }
},

toggle-feature-foo是通用的。你可以改变那个* manifest.json&#34;关键是你想要的。它作为参数传递给您的chrome.commands.onCommand侦听器。

在后台脚本中,您可以拥有(从同一来源修改):

chrome.commands.onCommand.addListener(function(command) {
    console.log('Command:', command);
    if(command === 'toggle-feature-foo') {
        //Code for toggle-feature-foo
    }
});

除非Mac触控板手势也生成键盘按键序列,否则无法轻松捕获此类手势。您可以编写一个执行此操作的内容脚本。但是,如果您必须使用内容脚本来执行此操作,那么为了启用该功能,这可能会对每个网页造成重大负担。