2016-05-29 2 views
1

Как обнаружить ctrl+q с JavaScript, это мой кодкак обнаружить CTRL + Q в JavaScript

<body> 
    <p id="x"></p> 
    <script> 
     window.onkeydown = function() {detect(event);} 
     window.onkeypress = function() {res(event);} 
     var act = false; 
     function detect(event) { 
      if(event.ctrlKey) { 
       act = true; 
      } 
      else 
       act = false; 
     } 
     function res(event) { 
      if(act) { 
       document.getElementById("x").innerHTML = "ctrl " + String.fromCharCode(event.which); 
      } 
      else 
       document.getElementById("x").innerHTML = String.fromCharCode(event.which); 
     } 
    </script> 
</body> 

Я хочу, чтобы это сделать только с помощью JavaScript.

+3

Этот вопрос уже задавали: см [как к найти выход-то, что-символьный ключ-это нажиму] (HTTP : //stackoverflow.com/questions/1846599/how-to-find-out-what-character-key-is-pressed) –

+0

@KevinWallis Итак, отметим это :) – dbf

ответ

5

Вы можете обнаружить его с помощью следующей функции:

document.addEventListener("keydown", function (event) { 
    event.stopPropagation(); 
    event.preventDefault(); 

    if(event.ctrlKey && event.keyCode == 81) 
    { 
    console.log("CTRL + Q was pressed!"); 
    } 
    else 
    { 
    console.log("Something else was pressed."); 
    } 
}); 

В stopPropagation() и preventDefault() звонков предотвратить поведение по умолчанию браузера от появления.

Если вы хотите, чтобы обнаружить другие ключи, эта страница весьма полезна: http://asquare.net/javascript/tests/KeyCode.html

+0

как этот код обнаруживает q? зачем нажать ctrl + b , не работает console.log («CTRL + Q был нажат!») ;? – Ehsan

+0

@ehsan 'keyCode == 81' относится к Q-ключу. Клавиша B - это нечто иное, чем 81. –

+0

@ehsan Да. KeyCode '81' - это ключ' Q'. Я упомянул в своем ответе, предоставленная ссылка полезна при определении «keyCodes» других ключей. – starbeamrainbowlabs

Смежные вопросы