相关:JavaScript KeyCode与CharCode
这是您可以在家中或在jsfiddle中尝试的一些代码:
el.addEventListener( 'keyup', function( e ) {
console.log( 'Keyup event' );
console.log( e.keyCode );
} );
el.addEventListener( 'keypress', function( e ) {
console.log( 'Keypress event' );
console.log( e.keyCode );
} );
为什么keyCode不同?
我能理解为什么只应该使用按键,但是我不明白的是,给定键盘上的相同击键,两个按键事件如何给出不同的keyCodes。
PS:我不用担心对旧版浏览器的支持,我在Chrome中尝试了此操作,感到很惊讶,并且找不到解释。
这些事件的目的完全不同。使用keyup
和keydown
标识物理键和keypress
标识键入的字符。两者是根本不同的任务,具有不同的事件。不要试图将两者混为一谈。特别是,keyCode
on keypress
事件通常是多余的,不应使用(较旧的IE除外,但有关更多信息,请参见下面的链接文档);对于可打印的按键,通常与which
和相同charCode
,尽管浏览器之间存在一些差异。
Jan Wolter的关于键事件的文章已经链接到另一个答案,对我而言,这是该主题的权威性词汇,它的表格描述了每种键事件和每种浏览器的不同属性分别返回什么。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句