我有這樣一個(gè)需求, 需要檢測(cè)用戶正在按下的按鍵,如果是某一個(gè)組合按鍵(比如command + shift + p), 我就執(zhí)行某一個(gè)操作。但是遇到了問題, 就是復(fù)合按鍵的keyup事件沒有觸發(fā),而僅僅觸發(fā)了keydown。代碼:const pressingKeyCode = {};const COMMAND = 91;const SHIFT = 16;const P = 80;window.addEventListener('keydown', e => { console.log('keydown', e.keyCode);
pressingKeyCode[e.keyCode] = true; if (
pressingKeyCode[COMMAND] &&
pressingKeyCode[SHIFT] &&
pressingKeyCode[P]
) { console.log('呵呵');
}
});function handleKeyUp(e) { console.log('keyup', e.keyCode);
pressingKeyCode[e.keyCode] = false;
}window.addEventListener('keyup', handleKeyUp);單個(gè)按鍵是沒有問題的可重現(xiàn)的demo地址: https://codepen.io/zhipenglu/...
前端記錄用戶正在按的按鍵的功能
冉冉說
2018-09-02 09:00:35