我有一个Javascript函数,可以监听 keydown 事件,并根据按下的键执行。
我的问题如下:
在 Chrome 中,当我按下ö时,这是一个土耳其字符,其keyCode 246 , event.keyCode < / strong>返回 188 ,这是逗号(,)字符的代码。 (Firefox返回0但这对我来说不是问题,因为它与逗号不同。)
所以我的问题是如何区分“ö”字符与Chrome中的逗号?或者有没有办法在keydown事件上获得原始的keyCode 246?
提前致谢。
答案 0 :(得分:2)
如果您想获取ASCII码,您必须收听keypress
事件并使用event.charCode
。
keydown
事件未提供charCode
,因为这两种事件类型之间存在一些差异:
理论上,keydown和keyup事件表示按下或释放的键,而keypress事件表示正在键入的字符。在所有浏览器中,该理论的实现并不相同。
答案 1 :(得分:1)
您应该使用event.originalEvent.keyIdentifier
方法。 “ö”和逗号有不同的keyIdentifiers。
答案 2 :(得分:1)
Here是一个很好的答案。 我在这里看到两个规则: