【发布时间】:2016-02-23 08:40:41
【问题描述】:
我试图在 keyPress、keydown 或 keyUp 事件中获取 keyPressed 的值。
此处的不同解决方案在 Chrome、FireFox、IE 等上运行良好。但是它们在 android 设备上失败。
我尝试了几个受以下 SO 启发的解决方案:
- Get Character value from KeyCode in JavaScript... then trim
- How to convert keycode to character using javascript
- how to get String/character value from key Code;
第一个解决方案:
element.keydown(function (e) {
var keyCode = e.charCode || e.keyCode || e.which;
var digit = String.fromCharCode(keyCode);
// here digit is "å" on android using danish locale
}
KeyUp 产生相同的结果。 KeyPressed 不会在 android 上的 chrome 上触发。
为了重现我做了一个 plunkr,它显示了行为:
https://plnkr.co/BVUfiJrBr0RBPDst9izD/
它在桌面上运行良好,但在 Android 浏览器上,keyCode 始终为229,无论按下什么键。
我在以下位置重现了错误:
- 三星 Galaxy S6,Android 5.1.1,浏览器:Chrome 48.0.2564.95
- Sony Experia Z2,Android 5.1.1,浏览器:Chrome 48.0.2564.95
确实有效:
- 三星 Galaxy S6,Android 5.1.1,浏览器:Firefox
- 苹果手机
尝试重现错误表明 Chrome 中存在错误。有没有其他方法可以解决这个问题?
【问题讨论】:
标签: javascript jquery google-chrome mobile-browser