我已从使用命令API的Chrome文档中加载此示例扩展程序。
的manifest.json
{
"name": "Sample Extension Commands extension",
"description": "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).",
"version": "1.0",
"manifest_version": 2,
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_popup": "browser_action.html"
},
"commands": {
"toggle-feature": {
"suggested_key": { "default": "Ctrl+Shift+Y" },
"description": "Send a 'toggle-feature' event to the extension"
},
"_execute_browser_action": {
"suggested_key": {
"default": "Ctrl+Shift+F",
"mac": "MacCtrl+Shift+F"
}
}
}
}
background.js
chrome.commands.onCommand.addListener(function(command) {
console.log('onCommand event received for message: ', command);
});
非常简单,但是侦听器回调没有被触发 - 我在控制台中没有输出,也没有任何错误。如果我使用其他API,例如标签,我的听众会被触发,它只是命令API对我不起作用。
答案 0 :(得分:12)
评论者rsanchez提供了正确答案:
您是否使用解压缩的扩展程序?您需要删除并重新添加建议的短切键的扩展名才能被考虑。
答案 1 :(得分:0)
我遇到了同样的问题,这些建议没有帮助。这是我想到的:因为您在background: {}
部分中使用侦听器声明了脚本,所以它会记录到后台页面。您可以通过点击chrome://extensions
扩展名下方的“检查背景页面”来专门查看该日志。这是监听器记录的位置。