關於FireFox23.0.1中實現的按鍵事件對象key屬性

標題可能有點拗口,不過往下看您就明白了。或者,也可以參考JS權威指南第17章的17.9節。

DOM3中對鍵盤事件對象進行了優化,爲它添加了key屬性,此屬性的值是一個字符串,對應於按下的鍵名。如果按下的是一個可打印的字符,則key值就等於這個字符,如果是功能鍵,則key值將是像“F2”,"Home","Left"這樣的值。

遺憾的是,目前這個屬性還未得到廣泛的實現(具體的實現情況我尚未做深入的研究,以後研究了再來更新)。剛纔寫了個小例子,意圖是將鍵盤按鍵轉換爲對應的鍵值,該例子要保證在所有瀏覽器中都可以良好地運行。

實驗的種種細節就不表了,這裏只想說一個結論: FireFox23.0.1中雖然給鍵盤事件對象添加了key屬性,但這個屬性的表現卻和DOM3規範所期望的並不一致。 它的初始值是“Unidentified”, 當我同時按下控制鍵和一個可打印字符時,它的值總會是控制鍵的字符化表示,而不是期望的字符值,例如:

 shift+a 爲 “Shift”

ctrl+ x(這個鍵其實任意,只要是可打印字符就行) 爲 “Control”

....

而當只按下可打印字符鍵時,它的值依然不是字符,而是“MozPrintableKey ”!! 真是詭異至極!期待在FF的後續版本中可以改進這個問題吧。

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