该页面翻译自 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' 事件。