如何在JavaScript中检测Ctrl+Enter按键组合?用户脚本开发求助
问题:用户脚本无法识别Ctrl+Enter组合键触发论坛发帖
我正在编写一个用户脚本,希望按下Ctrl+Enter组合键时自动触发论坛发帖,但我写的函数把两个按键的按下事件视为独立事件,没法识别成组合按键。查了相关问题,也没找到处理这个按键组合的合适方法。
最初的代码如下:
let boutton_toast = document.querySelector('.btn-poster-msg'); function toast(e){ if (e.ctrlKey && e.key=="Enter"){ boutton_toast.click(); } } document.addEventListener("keydown", toast)
我感觉答案很简单,但就是想不出来。
问题解决(编辑补充)
采用了fordat的方法后问题已解决,最终代码如下:
let button_toast = document.querySelector('.btn-poster-msg'); let pressedKeys = []; function bothKeysPressed() { if (pressedKeys.includes('Enter') && pressedKeys.includes('Control')) { button_toast.click(); } } document.addEventListener('keydown', () => { pressedKeys.push(event.key) bothKeysPressed(); }) document.addEventListener('keyup', () => { pressedKeys = pressedKeys.filter(key => key !== event.key) })
内容的提问来源于stack exchange,提问作者hopepill
相关产品推荐
相关产品推荐

