在使用JavaScript做WEB鍵盤事件偵聽捕獲時,主要采用onkeypress、onkeydown、onkeyup三個事件進(jìn)行出來。該三個事件的執(zhí)行順序如下:onkeydown -> onkeypress ->onkeyup。在一般情況下,采用三種鍵盤事件均可對鍵盤輸入進(jìn)行有效的響應(yīng)。當(dāng)在實際使用中,會發(fā)現(xiàn)這幾者有些不同的差別。
??????? onkeypress事件不能對系統(tǒng)功能鍵(例如:后退、刪除等,其中對中文輸入法不能有效響應(yīng))進(jìn)行正常的響應(yīng),onkeydown和onkeyup均可以對系統(tǒng)功能鍵進(jìn)行有效的攔截,但事件截獲的位置不同,可以根據(jù)具體的情況選擇不同的鍵盤事件。
??????? 由于onkeypress不能對系統(tǒng)功能鍵進(jìn)行捕獲,導(dǎo)致window.event對象的keyCode屬性和onkeydown,onkeyup鍵盤事件中獲取的keyCode屬性不同,主要表現(xiàn)在onkeypress事件的keyCode對字母的大小寫敏感,而onkeydown、onkeyup事件不敏感;onkeypress事件的keyCode無法區(qū)分主鍵盤上的數(shù)字鍵和付鍵盤數(shù)字鍵的,而onkeydown、onkeyup的keyCode對主付鍵盤的數(shù)字鍵敏感。
注:在Maxthon瀏覽器中,onkeydown和onkeyup有連續(xù)響應(yīng)兩次鍵盤事件的BUG,onkeydown不能正常地對F1~F12的功能鍵進(jìn)行正常的截獲(onkeyup沒有發(fā)現(xiàn)該問題),具體原因不明。不知道以后是否會進(jìn)行訂正。
posted on 2006-07-26 09:44
kelven 閱讀(7044)
評論(3) 編輯 收藏 所屬分類:
JavaScript