我正在开发一个chrome扩展程序,该扩展程序根据从事件页面接收的命令执行某些操作。我使用命令API https://developer.chrome.com/extensions/commands将命令注册在manifest.json文件中。在试用扩展程序时,我发现当我按住注册的键时,它会连续触发keydown事件并重复执行所需的功能,而这是我不想发生的。
这是manifest.json
"commands": {
"doFirstThing": {
"suggested_key": {
"default": "Alt+V",
"mac": "Alt+V"
},
"description": "something something"
},
"doSecondThing": {
"suggested_key": {
"default": "Alt+B",
"mac": "Alt+B"
},
"description": "something something"
}
}
这是background.js,它是事件页面
chrome.commands.onCommand.addListener(function (command) {
switch (command) {
case "doFirstThing":
//do something
break;
case "doSecondThing":
//do something
break;
}
});
因此,当我按住Alt并按住并释放“ V”时,一切正常。但是,当我同时按住“ V”时,“ doFirstThing”命令也会重复执行。好像触发了keydown事件。有没有一种方法可以将keyup事件绑定到onCommands API,这样我的函数只能运行一次?