我试图捕获在屏幕上显示之前插入的字符以验证屏幕。看我的代码
_this.on('keypress keydown',function(e){
var t = e.target;
var k = e.which || e.keyCode;
var c = String.fromCharCode(k);
console.log(String.fromCharCode(k))
});
如果我输入~
或任何其他标点字符,它返回非拉丁字符,例如å
。我使用的是 Chromium、Ubuntu。
我注意到这些特殊字符会忽略按键,这真是遗憾,这就是为什么我也尝试使用按键。但 keydown 无法检测到正确的字符并将其转换为斯堪的纳维亚和亚洲字符。
有没有解决方法可以输入正确的字符?
See 这个精彩的答案 https://stackoverflow.com/a/13127566/5090789对于类似的问题,以及相关的 jsfiddle:http://jsfiddle.net/S2dyB/17/ http://jsfiddle.net/S2dyB/17/
一个问题是keypress
and keydown
事件不可互换。keypress
用于检索输入的实际字符(因此特殊键被忽略),而keydown
为键盘上的每个键返回唯一的字符代码。更糟糕的是,不同的浏览器对每个事件的处理方式略有不同,使其变得一团糟。
看看如何e.which
之间变化keydown
and keypress
: http://jsfiddle.net/9TyzP/ http://jsfiddle.net/9TyzP/
正如您所看到的,它们很少匹配 - 并且对于许多键,显示的代码keypress
根本没有改变,表明该事件没有针对该键触发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)