【发布时间】:2015-09-10 10:25:55
【问题描述】:
简单的问题 -- 有没有人知道一个可靠的跨浏览器函数来获取从 keydown 事件输入的 字符?我可以从 quirksmode 网格中编写一个,但我宁愿不为如此简单但又如此不标准的东西重新发明轮子。
让我澄清一下:
仅使用event.keyCode 或event.which 是无法做到这一点的。整体逻辑是这样的:
- 获取密钥代码
- 检测移位,ctrl
- 如果 ctrl,忽略
- 创建带和不带 shift 键的键码映射
- 示例地图
{186 : ';', 187 : '=', 188 : ',', ....} - 需要一个单独的映射用于 shift 键修饰符
- 地图需要根据浏览器进行更改(尤其是 Safari Mac,其键码为 60,000)
- 示例地图
- 如果keycode在map中,返回映射键
- 如果keycode不在map中,规范化数字,必要时应用shift修饰键,返回
String.fromCharCode(key)
这不是一个简单的解决方案,这就是我寻找预制解决方案的原因:)
【问题讨论】:
标签: javascript javascript-events