gpt4 book ai didi

javascript - keypress 和 keyup - 为什么 keyCode 不同?

转载 作者:行者123 更新时间:2023-12-01 17:52:28 25 4
gpt4 key购买 nike

相关:JavaScript KeyCode vs 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不一样?

我能理解为什么一个人应该只使用按键,但我不明白的是两个键事件如何在键盘上给出相同的击键时给出不同的键码。

PS:我不担心遗留浏览器的支持,我在 Chrome 中试过这个并且很惊讶,找不到解释。

最佳答案

这些事件的目的完全不同。使用 keyupkeydown 来识别物理键,使用 keypress 来识别键入的字符。两者是不同事件的根本不同任务;不要试图将两者混为一谈。特别是,keypress 事件上的 keyCode 通常是多余的,不应使用(除了较旧的 IE,但请参阅下面的链接文档了解更多信息);对于可打印的按键,它通常与 whichcharCode 相同,尽管浏览器之间存在一些差异。

Jan Wolter's article on key events ,已经链接到另一个答案,对我来说是关于这个主题的权威词,并且有表格描述每个不同的属性为每种类型的键事件和每个浏览器返回什么。

关于javascript - keypress 和 keyup - 为什么 keyCode 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31836115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com