根据 MDN,我们绝对 不 应该使用该.keyCode属性。它已被弃用:
.keyCode
https://developer.mozilla.org/en- US/docs/Web/API/KeyboardEvent/keyCode
在 W3 学校,这个事实被淡化了,只有一个旁注说这.keyCode只是为了兼容而提供的,最新版本的 DOM 事件规范建议使用该.key属性。
.key
问题是.key浏览器不支持,那么我们应该使用什么?有什么我想念的吗?
您有三种方法来处理它,因为它写在您共享的链接上。
if (event.key !== undefined) { } else if (event.keyIdentifier !== undefined) { } else if (event.keyCode !== undefined) { }
你应该考虑它们,如果你想要跨浏览器支持,那是正确的方法。
如果你实现这样的东西可能会更容易。
var dispatchForCode = function(event, callback) { var code; if (event.key !== undefined) { code = event.key; } else if (event.keyIdentifier !== undefined) { code = event.keyIdentifier; } else if (event.keyCode !== undefined) { code = event.keyCode; } callback(code); };