在標准瀏覽器下獲取鍵盤按鍵我們可以使用e.which,但是非標准下沒有這個屬性,所以大部分情況下用keyCode,但是這是存在兼容性問題的。我們來看下他兩的區別:
onkeydown: e.keyCode 有值
onkeyup: e.keyCode 有值
onkeypress: e.keyCode 為0
onkeydown: e.charCode 為0
onkeyup: e.charCode 為0
onkeypress: e.charCode 有值
結論:charCode 返回onkeypress事件觸發鍵值的字母代碼。
keyCode 返回 onkeydown 或 onkeyup 事件的鍵的代碼。
做一下兼容處理:
function myFunction(e) { e || (e = window.event); if(e.which == null){ e.which = e.charCode != null ? e.charCode : e.keyCode; } }