keycode,charcode,which區別

引用:在標準瀏覽器下獲取鍵盤按鍵咱們能夠使用e.which,可是非標準下沒有這個屬性,因此大部分狀況下用keyCode,可是這是存在兼容性問題的。咱們來看下他兩的區別:瀏覽器

onkeydown: e.keyCode  有值code

onkeyup: e.keyCode 有值事件

onkeypress: e.keyCode 爲0event

 

onkeydown: e.charCode  爲0兼容性

onkeyup: e.charCode 爲0引用

onkeypress: e.charCode 有值異常

結論:charCode 返回onkeypress事件觸發鍵值的字母代碼。兼容

         keyCode 返回 onkeydown 或 onkeyup 事件的鍵的代碼。鍵盤

___________________________________________________________________________________________________co

一 :不一樣瀏覽器和不一樣事件,會有不一樣的屬性值。上述結論並不絕對,還和瀏覽器及輸入法(主要是微軟中文輸入法)有關。

    1. event.key: 返回值爲輸入的值,特殊鍵是各自的名字。(異常:當在非IE及微軟輸入法時,有實質輸入的鍵返回值爲 「」Process「」,其餘鍵不變)。

    2.keyCode,charCode,which:返回值爲 keyCode 。在微軟中文輸入時,返回值爲229.(而此時也沒法阻止默認行爲)

    保險作法是,不管哪一種都作兼容:code = event.keyCode || event.charCode;(同時判斷229特殊狀況)

    3. String.fromCharCode(keyCode):將返回碼轉成返回內容,可是除了有實質內容的鍵,其餘的鍵轉化結果有點亂。

相關文章
相關標籤/搜索