我正在编写一个用户脚本,每次执行快捷方式序列时都会在论坛中发布[ 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)
我觉得答案很明显,但我猜不出来。
您可以尝试创建一个存储变量的列表(或任何数据结构),如下所示:
pressedKeys = [];
function bothKeysPressed() {
if (pressedKeys.includes('Enter') && pressedKeys.includes('Control')) {
console.log("Enter and Control are pressed!");
}
}
document.addEventListener('keydown', () => {
pressedKeys.push(event.key)
bothKeysPressed();
})
document.addEventListener('keyup', () => {
pressedKeys = pressedKeys.filter(key => key !== event.key)
})
然后只需在“keydown”侦听器中包含一个附加函数来检查您需要的两个键。