Подтвердить что ты не робот

Как захватить CTRL-S без jQuery или любой другой библиотеки?

Как мне сделать захват события CTRL + S на веб-странице?

Я не хочу использовать jQuery или любую другую специальную библиотеку.

Спасибо за вашу помощь заранее.

4b9b3361

Ответ 1

Если вы используете только собственный/ванильный JavaScript, это должно привести к результатам, которые вы после:

var isCtrl = false;
document.onkeyup=function(e){
    if(e.keyCode == 17) isCtrl=false;
}

document.onkeydown=function(e){
    if(e.keyCode == 17) isCtrl=true;
    if(e.keyCode == 83 && isCtrl == true) {
        //run code for CTRL+S -- ie, save!
        return false;
    }
}

Что происходит?

Метод onkeydown проверяет, нажата ли клавиша CTRL (key code 17). Если это так, мы устанавливаем значение isCtrl на true, чтобы пометить его как активируемое и используемое. Мы можем вернуть это значение обратно в false в onkeyup.

Затем мы посмотрим, прилагаются ли какие-либо другие клавиши вместе с клавишей ctrl. В этом примере для ключа S используется key code 83. Вы можете добавить свои собственные методы обработки/обработки данных/сохранения в эту функцию, и мы вернем false, чтобы остановить работу браузера от нажатия клавиши CTRL-S.

Ответ 2

document.onkeydown = function(e) {
    if (e.ctrlKey && e.keyCode === 83) {
        alert('hello there');

        // your code here
        return false;
    }
};

Вам нужно заменить document на ваше фактическое поле ввода.

DEMO

Ответ 3

document.onkeydown = function(e) {
    if (e.ctrlKey && e.keyCode === 83) {
        alert('strg+s');
    }
    return false;
};

Некоторые события не могут быть захвачены, поскольку они захватываются системой или приложением.

Ответ 4

Вам не нужно было одновременного, измененного кода, чтобы отразить ваш сценарий

function iskeyPress(e) {
          e.preventDefault();
            if (e.ctrlKey&&e.keyCode == 83) {
               alert("Combination pressed");

               }
              return false;//To prevent default behaviour         
              }

Добавьте это к телу

  <body onkeyup="iskeypress()">

Ответ 5

Добавьте ярлыки JS-библиотеки и выполните следующий код:

<script src="js/libs/shortcut/shortcut.js" type="text/javascript"></script>

Тогда

shortcut.add("Ctrl+S", function() {
            alert("لقد قمت بالصغط على مراقبة مع حرف السين");
        });

Ответ 6

Mousetrap - отличная библиотека для этого (8 000+ звезд в Github).

Документация: https://craig.is/killing/mice

// map multiple combinations to the same callback
Mousetrap.bind(['command+s', 'ctrl+s'], function() {
    console.log('command s or control s');

    // return false to prevent default browser behavior
    // and stop event from bubbling
    return false;
});