document.addEventListener("keypress",function(e){
var ikeyCode=e.keyCode;
window.alert("press:"+ikeyCode);
});
document.addEventListener("keydown",function(e){
var ikeyCode=e.keyCode;
window.alert("down:"+ikeyCode);
});
在瀏覽器中執行上面的代碼,然後,任意按一個鍵,發現兩次alert的結果不一樣。
每次都相差32
是啥原因?
測試了是這樣的,沒錯。keyCode 屬性返回onkeypress事件觸發的鍵的值的字符代碼,或者 onkeydown 或 onkeyup 事件的鍵的鍵盤代碼。
這兩種代碼類型的區別是:字符代碼 - 表示 ASCII 字符的數字;鍵盤代碼 - 表示鍵盤上真實鍵的數字。
例如:你按下w鍵,兩種事件keypress是小寫w,keydown是大寫w,即大小寫相差32.
這篇文章有詳細介紹,可以細讀:http://www.runoob.com/jsref/event-key-keycode.html