显然,一个Web应用程序需要调整到用户的键盘设置,对吧?有没有办法告诉Dojo连接到实际的KeyPress事件而不是KeyDown,所以我们可以从event.charCode
获得键入的字符?操作系统无关键盘事件到字符映射
由于我们生活在一个国际化的世界中,使用多种操作系统,不知道这些信息不足以找出用户实际键入的字符,除非我在浏览器中内置了一些功能来询问操作系统。
作为一个例子,在Linux上的德语键盘上,[通过Alt Gr-8到达,它发送一个keydown给Alt,然后给keydown发送一个[。好吧,忽略第一部分。在带有德语键盘的Windows系统上,第二个事件是ctrlKey和altKey设置为true的8。我不认为JavaScript代码应该解释为硬编码,因为在其他键盘设置下,这个组合键实际上意味着不同的字符。
作为另一个例子(可能没有连接到Dojo,而是一个不同的程序员的小故障,抱歉抱怨......),在美国的Mac键盘上,你不能在outlook web界面输入德语字符 - 因为outlook虚假(!)劫持alt键(mac上的键专门用于修改键入的字符)来触发操作,alt-s因此被重新映射为意味着send。当然,通常在一个词的中间。
+1对于抨击Outlook。我曾经使用过的最糟糕的软件之一。 – shesek