
因此,在onkeydown/up的情況下,你能夠從keyCode里面得到鍵值。在onkeypress情況下,想要得到字符值就要使用:evt.charCode || evt.keyCode.
標點符號
我還是決定不對標點符號鍵做測試了。我懷疑這不僅跟瀏覽器和操作系統(tǒng)有關,還可能跟鍵盤設置和默認語言有關。我一般用的是荷蘭語版的windows,如果跟美國版的101鍵的鍵盤相比有很大出入,我一點都不會覺得意外。
比如說shift+,鍵出來的應該是<,但是我測試的ASCII碼的結果卻是'?'的。當我發(fā)現(xiàn)了這個問題,我決定還是不在標點符號鍵的問題上浪費時間了.
特別鍵
功能鍵就是只那些不能打印出來的但是卻具有一定功能的鍵。比如shift、ESC、enter等等都是功能鍵。
一些說明:
1、一般,mac的可靠性比windows要差,有些鍵可能檢測不到
2、IE不會觸發(fā)下面這鍵的keypress事件:delete, end, enter, escape, 功能鍵, home, insert, pageUp/Down 和 tab。
3、在onkeypress事件下,Safari會給下面這些鍵給出很奇怪的keyCode值:delete, end, 功能鍵, home 和 pageUp.Down。但是在onkeydown/up下面就很正常。
4、Alt,Cmd,Ctrl和shfit鍵在mac上無法探測,不過Opera下面例外。然而你卻可以使用altKey,ctrlKey,shfitKey這些屬性。
如果你需要探測這些鍵,你就探測一下載onkeydown/up下面的keyCode就行了,算是給自己幫忙了,onkeypress和charCode就忘掉吧。
原文后面有個大的鍵值的列表,還有一個測試框,有興趣的童鞋可以移步。
翻譯地址:http://www.quirksmode.org/js/keys.html
轉載請保留以下信息
作者:北玉(tw:@rehawk)
新聞熱點
疑難解答