1. <textarea id="demo" rows="6" cols="35" onfocus="focusIng=true" onblur="focusIng=false"></textarea>

    使用
    原生js监听键盘点击事件,自定义组合键
    中的快捷键方法

    1. let pressedKeys = [];
    2. let quickKeys = {
    3. send: 'enter',
    4. newline: 'control,enter',
    5. }
    6. let focusIng = false;
    7. document.addEventListener("keydown", function (e) {
    8. if (e.key.toLowerCase() == 'enter') {
    9. if (focusIng) {
    10. e.preventDefault();
    11. }
    12. }
    13. if (!pressedKeys.includes(e.key.toLowerCase())) {
    14. pressedKeys.push(e.key.toLowerCase());
    15. }
    16. });
    17. document.addEventListener("keyup", function (e) {
    18. switch (pressedKeys.toString()) {
    19. case quickKeys.send:
    20. console.log('按下了 发送 快捷键');
    21. break;
    22. case quickKeys.newline:
    23. console.log('按下了 换行 快捷键');
    24. if(focusIng) {
    25. let elem = document.getElementById('demo');
    26. elem.value += '\n';
    27. }
    28. break;
    29. }
    30. pressedKeys = pressedKeys.filter((item, index, arr) => {
    31. return item != e.key.toLowerCase();
    32. });
    33. if(pressedKeys.length != 1 || pressedKeys[0] != 'control') {
    34. pressedKeys = [];
    35. }
    36. });