javascript - 如何将谷歌浏览器的 .keyIdentifier 转换为合理的东西?

标签 javascript google-chrome compatibility

所以我正在编写一个捕获按键的脚本。这并不容易,因为似乎没有浏览器真正遵循 the specification of keyboard events .

在 firefox 中,我可以在 keyCode 属性中观察键码(确定特定的物理按钮),而在 .charCode 中观察字符码(代表键的字母)。这不是

当我尝试在谷歌浏览器中进行测试时,我观察到了不同的行为。 Google chrome 将所有 keyCodecharCodewhich 设置为字母值(如果存在)。但是 keyIdentifier 属性中有一个常量值。 W3 没有提及此类属性,但我真的很乐意使用它。

如何转换 keyIdentifier 值(对于 AU+0041)使它们与 keyCode 一致> 值出现在 Firefox 中(A65)?

最佳答案

实际代码是:

//Google chrome retardedness
if(event.keyIdentifier) {
  keyCode = parseInt(event.keyIdentifier.substr(2), 16);
}
//not that the other browsers are any closer to something systematic and logical
else {
  keyCode = event.keyCode;
}

关于javascript - 如何将谷歌浏览器的 .keyIdentifier 转换为合理的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27206737/

相关文章:

javascript - 在javascript中将用户位置与谷歌地图同步

javascript - 在 React 中渲染 JavaScript 对象

javascript - 火狐浏览器不兼容?

javascript - 在数字上使用 String.prototype.toUpperCase() 或 String.prototype.toLowerCase() 是否安全?

javascript - 按索引对字符串数组进行排序

google-chrome - 如何在不带参数的情况下调用Chrome native 消息主机?

javascript - 如何在 Chrome 控制台中显示完整对象

google-chrome - 在此页面上检测到 Vue.js。 Devtools 检查不可用,因为它处于生产模式或被作者明确禁用

sql-server-2000 - 如何从 PHP 5.3 及更高版本连接到 MSSQL 2000

html - Firefox 中的 CSS "display: flex"/行问题(使用 Bootstrap )