2012-07-26 137 views
3

是否有能力捕獲任何按鍵?即Ctrl + Shift + Alt按鍵(沒有其他按鍵)。HTML Javascript - 獲取ATL CTRL SHIFT鍵按

在下面的代碼段中(在Chrome中選中),我只能在按下其他「常規」鍵時捕獲換檔。

UPDATE

<html> 
<head> 
    <script> 
     function onKeyPressed(event) { 
      event = event || window.event; 
      var code = event.keyCode; 
      var key = String.fromCharCode(event.keyCode); 
      var shift = event.shiftKey; 
      var alt = event.altKey; 
      var ctrl = event.ctrlKey; 
      var which = event.which; 
      var str = "code = " + code + "\n" + 
         "key = " + key + "\n" + 
         "shift = " + shift + "\n" + 
         "alt = " + alt + "\n" + 
         "ctrl = " + ctrl + "\n" + 
         "which = " + which; 
      alert(str); 
     }; 

     function onClick(event) { 
      event = event || window.event; 
      var x = event.clientX; 
      var y = event.clientY; 
      var str = "x = " + x + "\n" + 
         "y = " + y; 
      alert(str); 
     }; 

     function onKeyUp(event) { 
      alert("onKeyUp"); 
     }; 

     function onKeyDown(event) { 
      alert("onKeyDown"); 
     } 
    </script> 
</head> 
<body onmousedown="onClick(event)" onkeypress="onKeyPressed(event)" onkeyup="onKeyUp(event)" onkeydown="onKeyDown(event)"></body> 
</html> 

如何這些密鑰被捕獲?

+0

是不是隻是'if(event.keyCode == x)'其中x是shift/ctrl/alt的關鍵代碼? – 11684 2012-07-26 21:14:21

+0

又一個jQuery解決方案,我不會去釣魚downvotes :) http://craig.is/killing/mice – 2012-07-26 21:15:07

+0

哎呀,對不起,[重複我找到](http://stackoverflow.com/questions)/10655202/detect-multiple-keys-on-single-keypress-event-on-jquery/10655273#10655273)是jQuery特有的。仍然,很容易適應,我認爲它唯一的jQuery方面是鉤住事件,這很容易修改。 – 2012-07-26 21:15:59

回答

2

jQuery是否允許?如果是的話就來看看這個:

http://www.stepanreznikov.com/js-shortcuts/

否則你可能會@Max小黃瓜建議的機會

+1

我喜歡這個主意! :)謝謝,但我正在尋找一種原生的方式來實現它。 – MrRoth 2012-07-26 21:35:37

+0

好@MrRoth - 看看craig.is/killing/mice它會爲你做的! :) – renatoargh 2012-07-26 21:41:15

+0

再次感謝你! :)但我不想使用圖書館,我想寫我自己的一個。那麼有什麼竅門,而不是對代碼進行逆向工程? – MrRoth 2012-07-26 21:45:08

2

據我所知,您必須使用KEYUP或keydown事件來捕獲的轉變,按鍵沒有捕獲它。如果您需要更多詳細信息,請查看每個事件捕獲的密鑰this list。由於shift是一個修飾鍵,它不會被捕獲。爲什麼這是我無法解釋的情況。

+0

請看我的更新。我已經包含'onkeydown'和'onkeyup'處理程序,但是隻有在按下按鍵時纔會調用onkeydown。 – MrRoth 2012-07-26 21:38:19

4

有一個非常漂亮的新JS庫,在瀏覽器中跟蹤鍵盤事件的功能非常出色。

它被稱爲捕鼠器。這裏的鏈接:http://craig.is/killing/mice

希望有所幫助。

相關問題