📅  最后修改于: 2023-12-03 15:01:37.405000             🧑  作者: Mango
在过去的 JavaScript 版本中,我们经常使用 e.keyCode
来获取用户在键盘上按下的字符的 ASCII 文本代码。然而,在 HTML5 中,e.keyCode
已被标记为“弃用”,因为它的行为在不同浏览器中有所不同。
因此,建议使用更加标准化的 e.key
属性来代替 e.keyCode
。
我们可以改用 e.key
来替代 e.keyCode
,它能够直接返回按下的字符,而不是一个 ASCII 文本代码值。这对于支持多种键盘映射的国际化网站尤其重要。
这里给出一个使用 e.key
来捕获按下的字符的示例代码:
document.addEventListener('keydown', function(event) {
console.log('You pressed the ' + event.key + ' key!');
});
在这个代码片段中,我们使用了 addEventListener
方法来监听 keydown
事件,然后在回调函数中使用了 event.key
来获取用户按下的实际字符。
在时下主流的浏览器中,e.key
的支持已经非常广泛了,包括 Chrome、Firefox、Safari、Edge 和 Opera 等。不过,为了保证代码的兼容性,我们也可以在回调函数中添加类似如下的代码:
var keyCode = event.keyCode || event.which;
var key = String.fromCharCode(keyCode);
console.log('You pressed the ' + key + ' key!');
这样就能够同时兼容使用 e.key
和 e.keyCode
两种方式获取按键字符的浏览器了。