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

Как определить, что нажата комбинация клавиш Ctrl + R?

Я кодирую функцию в jquery, которая выполняется, если нажата кнопка Ctrl + R, но я не могу понять, что означают левый и правый клавиши ctrl. Может кто-то помочь?

ОБНОВЛЕНИЕ

    ///this works
    $(document).keydown(function(e){
      if(e.keyCode==17){alert("control was pressed")};
 });

Следующий вопрос-- Как связать нажатие клавиши управления и нажатие другой клавиши для выполнения функции?

  if(e.keyCode==17){llCtrlPress=1};
   if(e.keyCode==97 && llCtrlPress=1){DO SOMETHING}
  ????????????

Кажется, что это сработает нормально, но тогда как установить llCtrlpress на "0" на клавиатуре?

4b9b3361

Ответ 1

Вам нужно использовать функцию keydown, чтобы уловить символы Ctrl. Вот моя реализация Ctrl + A:

    $(document).keydown(function(e) {
        if (e.keyCode == 65 && e.ctrlKey) {
            alert('ctrl A');
        }
    });

Ctrl-R более жесткая, потому что в большинстве браузеров это Обновить страницу, что означает, что javascript не запускается, страница обновляется.

Просто примечание, значение keyCode отличается от функций keydown/keyupup, чем в функциях нажатия клавиш.

EDIT: Удаленная переменная ctrl, забыли о ctrlKey

Ответ 2

Здесь - это весь список кодов клавиш, которые вы можете использовать.

Ответ 3

Это код, который я использую, чтобы отключить обновление IE и firefox (это хорошо работает для F5, Ctrl + F5 и Ctrl + R)

<script language="javascript" type="text/javascript">
    //this code handles the F5/Ctrl+F5/Ctrl+R
    document.onkeydown = checkKeycode
    function checkKeycode(e) {
        var keycode;
        if (window.event)
            keycode = window.event.keyCode;
        else if (e)
            keycode = e.which;

        // Mozilla firefox
        if ($.browser.mozilla) {
            if (keycode == 116 ||(e.ctrlKey && keycode == 82)) {
                if (e.preventDefault)
                {
                    e.preventDefault();
                    e.stopPropagation();
                }
            }
        } 
        // IE
        else if ($.browser.msie) {
            if (keycode == 116 || (window.event.ctrlKey && keycode == 82)) {
                window.event.returnValue = false;
                window.event.keyCode = 0;
                window.status = "Refresh is disabled";
            }
        }
    }
</script>

Если вы не хотите использовать useragent для определения того, какой тип браузера он ($.browser использует navigator.userAgent для определения платформы), вы можете использовать

if('MozBoxSizing' in document.documentElement.style) - возвращает true для firefox

Ответ 4

почему вы не используете e.ctrlKey?

 if (e.keyCode == 65 && e.ctrlKey) {
     alert('ctrl A');
 }

edit: вот подходящая функция для обнаружения нажатия клавиши ctrl-r и остановки перезагрузки браузера.

function keydown(e) {
    if (e.ctrlKey && e.keyCode == 82) {
        // 82 = r

        // TODO: your thing.

        if (e.preventDefault) {
            e.preventDefault();
        }
        else {
            return false;
        }
    }
}

Я новичок в jQuery, я думаю, вы бы сделали

$(document).keydown(keydown);

верно?

Ответ 5

Существует логическое свойство ctrlKey, которое вы можете использовать здесь...

$(document).keypress(function(e) { 
   alert("Ctrl is pressed: " + e.ctrlKey); 
}); 

Ответ 6

 $(document).ready(function () {
     $(document).keyup(function (e) {
         if (e.keyCode == 81 && e.ctrlKey) { //CTRL+Q
             alert("CTRL+Q");
         } else if (e.keyCode == 27) { //ESCAPE
             alert("escape");
         } else if (e.keyCode == 67 && e.altKey) { // ALT+C
           alert("ALT+C");
        }     
    });
});

коды клавиш

Ответ 7

Используйте event.key и современный JS!

$(document).keypress(function(event) {
    if (event.key === "r" && event.ctrlKey) {
        // Do something
    }
});

или без jQuery:

document.addEventListener("keypress", function onEvent(event) {
    if (event.key === "r" && event.ctrlKey) {
        // Do something better
    }
});

Документы Mozilla

Поддерживаемые браузеры

Ответ 8

Клавиша Key Code для Ctrl 11.

$(document).keypress(function(e) { 


  alert("Ctrl is pressed: " + e.ctrlKey); 
}); 

Ответ 9

@HostListener('window:keydown', ['$event'])
  keyEvent(event: KeyboardEvent) {

   if (event.ctrlKey && event.keyCode == 82)
    {

    }
  }

Ответ 10

Мы также можем использовать код Ascii для поиска символов и символов

$('html').keydown(function (e) {
     keydownfunc(e);
});
function keydownfunc(e) {
   if (e.ctrlKey && (e.key === "r" || e.key === "R")) {
       alert("ctrl+R");
   }
    }