显然,Web 应用程序需要根据用户的键盘设置进行调整,对吗?有没有办法告诉 Dojo 连接到实际的 KeyPress 事件而不是 KeyDown,这样我们就可以从 获取输入的字符event.charCode
?
由于我们生活在一个国际化的世界中,有多个操作系统等等,这些信息不足以找出用户实际输入的字符,除非我在浏览器中内置了一些功能来询问操作系统。
例如,在 Linux 上的德语键盘上,[ 通过 Alt Gr-8 到达,它发送一个用于 Alt 的按键,然后发送一个带有 [ 的按键。好吧,忽略第一部分。在带有德语键盘的 Windows 系统上,第二个事件是针对 8 且 ctrlKey 和 altKey 设置为 true。我不认为 JavaScript 代码应该解释硬编码,因为使用其他键盘设置,这个组合键实际上意味着不同的字符。
再举一个例子(可能没有连接到 Dojo,而是其他程序员的小故障,对咆哮感到抱歉……),在 mac 上使用美式键盘时,您无法在 Outlook Web 界面中键入德语字符 ß - 因为 Outlook 伪造( !) 劫持 alt 键(在 mac 上专门用于修改键入的字符)以触发操作,因此 alt-s 被重新映射为发送。当然,通常在一个单词的中间。