关于FireFox23.0.1中实现的按键事件对象key属性

来源:互联网 发布:java ee jdk 1.7.0 79 编辑:程序博客网 时间:2024/05/14 10:11

标题可能有点拗口,不过往下看您就明白了。或者,也可以参考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的后续版本中可以改进这个问题吧。