You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 21:37:34