在使用keypress
keydown
事件進行鍵盤監控時發現幾個奇怪的問題:
1、不論按下哪個按鍵,在火狐上監控到的keyCode=0
,而在其他瀏覽器上監控到的keyCode=229
。
不論是0還是229,這顯然是不對的。
通過反覆試驗,發現可能是 中文輸入法 導致的。在英文狀態下獲取到的keyCode
值是正常的,而在中文狀態下就發生了異常。
2、keypress
無法監控功能鍵
在我的需求裏,要監控“上、下、左、右”按鍵,並且屏蔽這4個鍵的默認操作。
一般屏蔽按鍵操作的做法是使用keypress
進行監聽,獲取到這幾個鍵的keyCode
時return false;
來中斷默認事件。
然而實際上卻發現,keypress
無法監控到功能鍵,這時唯有使用keydown
進行替代。
這幾個鍵盤事件執行的順序是keypress
> keydown
> keyup