该页面翻译自 Google Chrome Extensions 与 Google Chrome Apps。除非特别说明,该页面的内容遵循 Creative Commons Attribution 3.0 License,代码示例遵循 BSD License。
描述: |
使用命令 API 添加快捷键,触发您的扩展程序中的操作,例如打开浏览器按钮或向扩展程序发送命令。
|
可用版本: |
从 Chrome 25 开始稳定支持。
|
清单文件: |
"commands": {...}
|
您必须将将 manifest_version(清单文件版本)设置为(至少)2 才能使用该 API。
命令 API 允许您定义特定的命令,并为它们绑定默认的组合键。您的扩展程序接受的每一个命令都必须在清单文件中列出,作为 'commands' 键的属性。扩展程序可以包含很多命令,但是只能指定四个推荐的按键。用户可以在 chrome://extensions 页面手动添加更多的快捷键。
支持的按键包括:A~Z、0~9、逗号、句号、Home、End、PageUp、PageDown、Insert、Delete、方向键(上、下、左、右)和多媒体键(上一曲(MediaPrevTrack)、下一曲(MediaNextTrack)、播放/暂停(MediaPlayPause)、停止(MediaStop))。
注意:所有组合键必须包含 Ctrl* 或 Alt 中的一个,不允许使用涉及到 Ctrl+Alt 的组合键,以免与 AltGr 键冲突。除了 Alt 或 Ctrl 外还可以使用 Shift 键,但不是必须使用。组合键(例如 Ctrl)不能与多媒体按键一起使用。出于辅助功能的原因,从 Chrome 33 开始不支持 Tab 键。
* 另外请注意,在 Mac 中 Ctrl 会自动转换为 Command 键。如果您希望使用 Ctrl,请指定“MacCtrl”。
某些 Chrome 浏览器的快捷键(例如窗口管理)优先级始终比扩展程序命令的快捷键高,不能被覆盖。
{ "name": "我的扩展程序", ... "commands": { "toggle-feature-foo": { "suggested_key": { "default": "Ctrl+Shift+Y", "mac": "Command+Shift+Y" }, "description": "切换 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+E", "windows": "Alt+P", "mac": "Option+P" } } }, ... }
在您的后台网页中,您可以通过 onCommand.addListener 为清单文件中定义的每一个命令(除了 '_execute_browser_action' 与 '_execute_page_action')绑定处理函数。例如:
chrome.commands.onCommand.addListener(function(command) { console.log('Command:', command); });
'_execute_browser_action'(执行浏览器按钮)与 '_execute_page_action'(执行页面按钮)命令为打开您的扩展程序的弹出内容而保留,它们通常不会产生您可以处理的事件。如果您需要在弹出内容打开时进行处理,考虑在弹出内容的代码中监听 'onDomReady' 事件。