Данная JavaScript функция позволяет перехватывать одновременное нажатие нескольких клавиши на странице . Использовать это можно, например, для быстрого перехода по ссылкам на сайте или в редакторе текста - для сохранения текста, его стилизации в редактируемой области и т.д.

Скрипт перехвата нажатий нескольких клавиш на JavaScript

Данная JavaScript функция позволяет перехватывать одновременное нажатие нескольких клавиши на странице. Использовать это можно, например, для быстрого перехода по ссылкам на сайте или в редакторе текста - для сохранения текста, его стилизации в редактируемой области и т.д.

Код скрипта упрощен насколько это возможно, для того чтобы Вы могли понять суть того, как можно перехватывать нажатие сразу нескольких клавиш на странице с помощью JavaScript. Далее вы уже самостоятельно можете дополнить его необходимой функциональностью.

Код:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Скрипт перехвата нажатий нескольких клавиш на JavaScript</title>
</head>
<body>
    <script>

        /**
         * Данная функция привязывает действие callback к нажатию
         * клавиш Cntrl + Клавиша (targetKey)
         * 
         */
        function controlPlusKey( targetKey, callback ) 
        {
            // добавляем событие нажатия клавиш на документ
            document.addEventListener('keydown', event => {

                // если нажаты клавишы Cntrl и targetKey
                if( event.ctrlKey && event.which == targetKey.charCodeAt(0) ) {
                    
                    // запрещаем действие по умолчанию
                    event.preventDefault();

                    // вызываем наше действие
                    callback();
                }

            }, false);

        }

        // используем так
        controlPlusKey('D', () => console.log('Нажаты клавиши Cntrl + D'));
        controlPlusKey('Z', () => console.log('Нажаты клавиши Cntrl + Z'));
        controlPlusKey('F', () => console.log('Нажаты клавиши Cntrl + F'));
        
    
    </script>
</body>
</html>