打开上下文菜单

时间:2020-02-24 14:24:30

标签: javascript

我正在跟踪当前按下了哪些按钮,但是如果有人按下一个按钮,右键单击鼠标(打开上下文菜单),并在上下文菜单打开时释放键,则不会触发keyup事件。这使我的应用程序状态进入不一致状态,我不确定如何从中恢复。 我的代码(简体):

var currently_pressed_buttons = new Set()

function keydown(event){
    currently_pressed_buttons.add(event.code)
    return false;
}
window.addEventListener("keydown", keydown);

function keyup(event){
    currently_pressed_buttons.delete(event.code)
    return false;
}
window.addEventListener("keyup", keyup);

我发现只有一个丑陋的解决方法:

function contextmenu(event){
    currently_pressed_buttons.clear()
    return false;
}
window.addEventListener("contextmenu", contextmenu);

但是,避免这样一个糟糕的解决方案真是太好了……

最好, 西蒙

0 个答案:

没有答案