chrome.commands
描述: |
使用命令 API 添加快捷键,以便触发扩展程序中的操作,例如打开浏览器按钮或向扩展程序发送命令。
|
可用版本: |
从 Chrome 25 开始支持。
|
清单文件: |
"commands": {...}
|
清单文件
您必须将 manifest_version(清单文件版本)至少设置为 2
才能使用该 API。
用法
命令 API 允许您定义特定的命令,并为它们绑定默认的组合键。您的扩展程序接受的每一个命令都必须在清单文件中列出,作为 'commands' 键的属性。扩展程序可以包含很多命令,但是只能指定四个推荐的按键。用户可以在 chrome://extensions/configureCommands 对话框中手动添加更多的快捷键。
支持的按键包括: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 OS 中您还可以指定“搜索”组合键。
某些 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+Shift+E", "windows": "Alt+Shift+P", "mac": "Alt+Shift+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' 事件。
范围
默认情况下,命令的范围仅限于 Chrome 浏览器,也就是说浏览器没有焦点时,快捷键不活动。从 Chrome 35 开始,在桌面版 Chrome 浏览器上,命令的范围可以是全局的,即使 Chrome 浏览器没有焦点时仍然可以使用。注:Chrome OS 除外,目前还不允许全局命令。
用户可以在 chrome://extensions > 快捷键用户界面中使用任意快捷键作为全局快捷键,但是扩展程序开发者在全局快捷键中只能指定 Ctrl+Shift+[0..9]。这样是为了尽可能避免与其他应用程序中的快捷键重复,例如,如果允许将 Alt+P 作为全局快捷键,其他应用程序中的打印快捷键就不能正常使用。
例如:
{ "name": "我的扩展程序", ... "commands": { "toggle-feature-foo": { "suggested_key": { "default": "Ctrl+Shift+5" }, "description": "开启/关闭某项功能", "global": true } }, ... }
摘要
类型 | |
---|---|
Command | |
方法 | |
getAll −
chrome.commands.getAll(function callback)
| |
事件 | |
onCommand |
类型
Command
属性 | ||
---|---|---|
string | (可选) name |
扩展程序命令的名称。 |
string | (可选) description |
扩展程序命令的描述。 |
string | (可选) shortcut |
当前用于该命令的快捷键,或者如果不活动的话则为空。 |
方法
getAll
chrome.commands.getAll(function callback)
事件
onCommand
当注册的命令通过快捷键激活时产生。
addListener
chrome.commands.onCommand.addListener(function callback)
参数 | |||||
---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(string command) {...};
|
示例扩展程序
- Sample Extension Commands extension – Press Ctrl+Shift+F (Command+Shift+F on a Mac) to open the browser action popup, press Ctrl+Shift+Y to send an event (Command+Shift+Y on a Mac).
- Event Page Example – Demonstrates usage and features of the event page
- Keyboard Pin – Creates a keyboard shortcut (Alt + Shift + P) to toggle the pinned state of the currently selected tab
- Tab Shortcuts – Allows pinning and duplication of tabs via keyboard shortcuts.