如何处理非英语键按下

时间:2015-07-06 13:45:15

标签: javascript internationalization

当我将键盘布局切换为希伯来语并按下一个字符时,它会在kepress事件中按原样接收。例如,单击ה(v键),然后e.which为1492.但是,当我进行组合时,键是英语键。因此alt+ה e.which为86.因此事件看起来像alt+v

如果我想创建一个接受键组合和回调并注册回调但又显示回调文档的函数,这很痛苦,因为如果我注册alt+ה,那么当我按下组合时看起来像alt+v,它与注册的组合不匹配。但是如果我注册alt+v,那么文档将会很尴尬。

所以我的问题归结为以下是否可能之一:

  1. 知道实际按下了哪个键(意思是,知道הalt而不是v一起被按下了
  2. 希伯来字符(或任何非英语)与其物理英语对应物之间的映射,因此当我的函数收到alt+ה时,它会将其转换为alt+v以进行回调查找。
  3. 当然我想要一些通用的东西,它适用于任何语言,而不仅仅是希伯来字母。

1 个答案:

答案 0 :(得分:0)

  1. 你不应该关心它是alt-ה还是alt-v,你想对两种情况都执行相同的操作。
  2. 如果未识别,则无法在任何地方识别,因此您的功能也将获得alt-v。
  3. 如果你的函数得到了某些东西(“Alt”,“ה”),你应该创建一个转换对象。 var conv = {'ה':'v'; 'ש':'a',...}