如何处理非英语按键输入

6
当我将键盘布局切换为Hebrew并按下字符时,它会在keypress事件中接收到。例如,点击“ה”(v键),然后e.which是1492。但是,当我组合键时,该键是英文键。因此,对于alt + ה,e.which是86。所以事件看起来像alt + v。
如果我想创建一个接受键组合和回调的函数,并注册回调,同时显示回调文档,那么这就很麻烦了,因为如果我注册alt + ה,那么当我按下组合键时,它看起来像alt + v,并且不会匹配注册的组合。但是如果我注册alt + v,那么文档就会很尴尬。
因此,我的问题归结为以下两点之一是否可能:
1.知道实际按下了哪个键(即,知道按下了ה与alt而不是v); 2.将非英语字符(或任何非英语字符)映射到其物理英语对应项,因此当我的函数接收alt + ה时,它会将其转换为用于回调查找的alt + v。
当然,我想要通用的东西,适用于任何语言,而不仅仅是希伯来字母表。

1
尽管支持不佳,W3C目前有一份关于该主题的工作草案 - Nikola Dimitroff
虽然这只是一个猜测,但也许上面的某一层(键盘、操作系统)在到达浏览器之前就会即时进行转换,以便为常见操作(复制、粘贴、剪切、全选、保存等)提供一致的界面,这实际上是有道理的。因此,如果您发现这种行为在各个系统中足够一致,请使用笨拙的文档,并且感到高兴,因为您不必处理每种语言的键盘。 - Szabolcs Páll
1个回答

0
  1. 你不应该关心它是alt-ה还是alt-v,你想在两种情况下执行相同的操作。
  2. 如果没有被识别,那么它就没有被任何地方识别,所以你的函数也会得到alt-v。
  3. 如果你的函数得到了一些东西(“Alt”,“ה”),你应该为转换创建一个对象。 var conv= { 'ה': 'v'; 'ש': 'a',...}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接