Chrome扩展程序:如何将“ keyup”事件绑定到manifest.json文件中的onCommands API

时间:2019-01-31 06:56:27

标签: google-chrome-extension keyboard-events

我正在开发一个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,这样我的函数只能运行一次?

0 个答案:

没有答案