javascript - 检测keyCode问题错误值

标签 javascript jquery html google-chrome firefox

我需要检测用户何时在键盘上选择字母 ] KeyCode: 221 并在 dom 上返回字母 ]

我的问题是:

如果事件是从 input 元素或 document 返回的,则 event.keyCode 返回的值会有所不同。

还有

在 Chrome 版本 55.0 上测试以下问题

我得到的输入: event.keyCode: 93 - String.fromCharCode: ]

我得到的文档: event.keyCode: 221 - String.fromCharCode: Ý

以及 Firefox 50.1.0

我得到的输入: event.keyCode: 0 - String.fromCharCode:

我得到的文档: event.keyCode: 221 - String.fromCharCode: Ý

我需要知道:

  • 我的代码有什么问题?
  • 如何以一致的方式获得相同的值?

注释:我使用的是 ENG 美国国际键盘(这可能相关吗?)。

var input = document.getElementById('input');
var result = document.getElementById('result');
input.addEventListener('keypress', function(event) {
  result.innerHTML = `event.keyCode: ${event.keyCode} - String.fromCharCode: ${String.fromCharCode(event.keyCode)}`;

});

var resultDocument = document.getElementById('resultDocument');

document.addEventListener('keydown', function(event){
  resultDocument.innerHTML = `event.keyCode: ${event.keyCode} - String.fromCharCode: ${String.fromCharCode(event.keyCode)}`;
});
<input id="input" type="text" size="40">
<div id="result"></div>

<h1>On document</h1>
<div id="resultDocument"></div>

最佳答案

Event.keyCode 已弃用,inconsistent跨浏览器,请使用 Event.key(如果可用)。如果没有,最好的选择是使用类似 Keypress 的库。 。 jQuery 也可以。

关于javascript - 检测keyCode问题错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41302136/

相关文章:

javascript - 移动和桌面 View 的 Angular Controller 继承

javascript - 使用 JavaScript 自定义动画

javascript - Ajax 调用后未应用 AddClass 方法

javascript - 为什么 JQuery 的 addClass 方法在本地主机上有效,但在实时服务器上无效

jquery - 如何使用 jQuery 选择在数据属性数组中具有特定值的元素

javascript - 如何循环或枚举 JavaScript 对象?

javascript - 使用 CSS3 动画的 JavaScript 中的横幅旋转

javascript - Ajax 响应不会在 php while 循环中更新

javascript - 导航栏水平折叠并显示导航项

php - 地址和坐标不显示在 Mysql 数据库中