例如按键事件将返回以下内容在KeyboardEvent中,应该使用哪个属性来确定哪个键被按下?
KeyboardEvent {
charCode: 32,
code: "Space",
key: " ", // space character
keyCode: 32,
which: 32
}
哪些(如果有)这些被弃用/不应该被使用?代码对我来说很有意义,因为它是人类可读的。 Afaik,which
已弃用。
例如按键事件将返回以下内容在KeyboardEvent中,应该使用哪个属性来确定哪个键被按下?
KeyboardEvent {
charCode: 32,
code: "Space",
key: " ", // space character
keyCode: 32,
which: 32
}
哪些(如果有)这些被弃用/不应该被使用?代码对我来说很有意义,因为它是人类可读的。 Afaik,which
已弃用。
我只是做了一些研究...根据mdn(https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent)我们应该使用key
“如果可用”。
char
已被弃用
charCode
已被弃用
keyCode
已被弃用
which
已被弃用
code
不会被弃用,所以我想我们用这个如果key
不可用。
keyCode
确定哪个键是pressed.except keyCode
包括shiftKey
,altKey
,ctrlKey
,metaKey
检测特殊键。
我正在寻找调试器并在Angular 2中找出事件对象。您将明确使用keyCode。我很确定这就是文档所说的。有兴趣谈谈此事。不过请注意,我使用keyCode,并从所有按键中得到我需要的东西(输入shift等)。
它是有道理的,我猜;你想要钥匙,使用钥匙代码。你想要的字符,使用charCode。你可能会认为它们是一样的,但看起来它们不是(或者至少并非总是)。
只是为了添加所有细节,我必然会遇到keyup事件。这可能不是角度2具体的,但只是共享环境等
'keyCode'已弃用,不应使用(尽可能)。 – Bryce
你可以显示一些文件来达到这种效果(这是不容易驳斥的)吗?查看调试器中的信息,charCode不会有用。我看到对MDN的引用表示弃用,但我也看到W3C event.key并未得到普遍支持。角度文档经常提到keyCode。另一个stackoverflow答案说,有钥匙,keyCode和keyIdentifier。但是,当传递这个事件时,唯一一贯有用的东西似乎是keyCode。请参阅http://stackoverflow.com/questions/35394937/javascript-keycode-deprecated-what-does-this-mean-in-practice –
无论如何,尽管如此,我环顾四周,无法将弃权确定为实际和一致的事实。(注意,这里的要点是要找出日常开发的有用实践,而不是说你错了)。 –
有趣的是,keyCode是我在Angular 2中使用的。我没有看到传入事件上的charcode。 –
它们是相同的,所以你必须使用'var key = e.charCode | e.keyCode' –
其实我是这样做的。 charCode将是输入的字符。键码是按下的键。它们不一样(现在正在查看调试器)。例如,我看到charCode 0,keyCode 62.我会说keyCode对于知道密钥是正确的(出于某种原因,我认为我已经知道了)。我的意思是,如果你仔细想想,它确实有意义。 –