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