📜  javascript e.keycode 已弃用 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:37.405000             🧑  作者: Mango

JavaScript e.keyCode 已废弃

在过去的 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.keye.keyCode 两种方式获取按键字符的浏览器了。