keyCode 與 charCode

DOM標準下


keyCode:默示按下按鍵的鍵盤碼。(鍵盤碼:Flash Player 給鍵盤上所有可偵測的鍵賦上一個隨便率性數值的標識符。)


charCode:按下按鍵的Unicode字符。指導邏輯上對應於比來被按下或開釋的鍵的字符的ASCⅡ字符


比如當按下“a鍵(重視是小寫的字母)時,


在火狐中會獲得
keydown:keyCode is 65  charCode is 0


keypress:keyCode is 0  charCode is 97


keyup: keyCode is 65 charCode is 0


在IE中會獲得
keydown:keyCode is 65  charCode is undefined


keypress:keyCode is 97 charCode is undefined


keyup: keyCode is 65 charCode is undefined


而當按下shift鍵時,


在火狐中會獲得
keydown:keyCode is 16  charCode is 0

keyup: keyCode is 16   charCode is 0


不會獲得任何的charCode值,因爲按shift並沒輸入任何的字符,並且也不會觸發keypress事務


在IE中會獲得
keydown:keyCode is 16  charCode is undefined

keyup: keyCode is 16  charCode is undefined


小結:在keydown事務裏面,事務包含了keyCode – 用戶按下的按鍵的物理編碼。在keypress裏,keyCode包含了字符編碼,即默示字符的ASCII碼。如許的情勢實用於所有的瀏覽器 – 除了火狐,它在keypress事務中的keyCode返回值爲0。

KeyPress 和KeyDown 、KeyPress之間的差別


(一)鍵事務按下列次序產生: 

  1. KeyDown

  2. KeyPress

  3. KeyUp

 (二)KeyDown觸發後,不必然觸發KeyUp,當KeyDown 按下後,拖動鼠標,那麼將不會觸發KeyUp事務。


 (三)定義


KeyDown:在控件有核心的景象下按下鍵時產生。


KeyPress:在控件有核心的景象下按下鍵時產生。(下面會說和KeyDown 的差別)


KeyUp:在控件有核心的景象下開釋鍵時產生。


 (四)KeyPress 和KeyDown 、KeyPress之間的差別


 1.KeyPress首要用來捕獲數字(重視:包含Shift+數字的符號)、字母(重視:包含大小寫)、小鍵盤等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開端鍵}和標的目標鍵外的ANSI字符 KeyDown 和KeyUp 凡是可以捕獲鍵盤除了PrScrn所有按鍵(這裏不評論辯論特別鍵盤的特別鍵)


2.KeyPress 只能捕獲單個字符KeyDown 和KeyUp 可以捕獲組合鍵。


3.KeyPress 可以捕獲單個字符的大小寫


4.KeyDown和KeyUp 對於單個字符捕獲的KeyValue 都是一個值,也就是不區分單個字符的大小寫。


5.KeyPress 不區分小鍵盤和主鍵盤的數字字符。KeyDown 和KeyUp 區分小鍵盤和主鍵盤的數字字符。


6.此中PrScrn 按鍵KeyPress、KeyDown和KeyUp 都不能捕獲。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章