2016-05-29 61 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-c​​haracter-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

這個代碼是如何發現問題:爲什麼按Ctrl + b ,不工作的console.log( 「CTRL + Q按下!」);? – Ehsan

+0

@ehsan'鍵代碼== 81'指Q鍵。 B鍵比81 – 2016-09-21 23:34:44

+0

其他東西@ehsan是。 keyCode'81'是'Q'鍵。我已經在我的答覆中提到,提供的鏈接是決定其他鍵的'keyCodes'有用。 – starbeamrainbowlabs