<textarea id="demo" rows="6" cols="35" onfocus="focusIng=true" onblur="focusIng=false"></textarea>
使用
原生js监听键盘点击事件,自定义组合键
中的快捷键方法
let pressedKeys = [];
let quickKeys = {
send: 'enter',
newline: 'control,enter',
}
let focusIng = false;
document.addEventListener("keydown", function (e) {
if (e.key.toLowerCase() == 'enter') {
if (focusIng) {
e.preventDefault();
}
}
if (!pressedKeys.includes(e.key.toLowerCase())) {
pressedKeys.push(e.key.toLowerCase());
}
});
document.addEventListener("keyup", function (e) {
switch (pressedKeys.toString()) {
case quickKeys.send:
console.log('按下了 发送 快捷键');
break;
case quickKeys.newline:
console.log('按下了 换行 快捷键');
if(focusIng) {
let elem = document.getElementById('demo');
elem.value += '\n';
}
break;
}
pressedKeys = pressedKeys.filter((item, index, arr) => {
return item != e.key.toLowerCase();
});
if(pressedKeys.length != 1 || pressedKeys[0] != 'control') {
pressedKeys = [];
}
});