目前,我听Enter
钥匙开始发送消息。
但是对于多字节字符,Enter
键应该选择某个字符。
问题是我不知道如何检测用户是否正在输入多字节字符,即使他在这个过程中,消息也会在他第一次Enter
按键时发送。
所以用户体验真的很奇怪。
有人对此有解决方案吗?
如果您不明白我的意思,可以尝试在这里聊天,一旦您开始对话,切换到多字节模式,您就会明白我的意思。
链接在这里:
目前,我听Enter
钥匙开始发送消息。
但是对于多字节字符,Enter
键应该选择某个字符。
问题是我不知道如何检测用户是否正在输入多字节字符,即使他在这个过程中,消息也会在他第一次Enter
按键时发送。
所以用户体验真的很奇怪。
有人对此有解决方案吗?
如果您不明白我的意思,可以尝试在这里聊天,一旦您开始对话,切换到多字节模式,您就会明白我的意思。
链接在这里:
我假设您对多字节输入的引用是对“输入法”(或 Windows 上的“输入法编辑器”)的引用。
不幸的是,目前还没有任何真正的解决方案——DOM3 将为此添加机制,但由于复杂性,它似乎已经放弃了这一点。
在您考虑浏览器之间的行为差异之前,部分复杂性来自各个输入法的截然不同的行为。一个很好的例子是只检查你收到的关于日语、韩语和(繁体和简体)中文的一组行为的关键事件。浏览器无法避免这种情况,因为它们正在响应输入编辑器直接触发的事件。
您真正可以依赖的唯一东西是keyDown
事件,即使在 Opera 和 Firefox 中也没有那么多 - Safari 和 IE 都keyDown
在 IME 组合期间提供事件,acharCode
为 229,以及keyUp
一个charCode
对应于实际密钥的事件按下。
有一个textInput
事件,但只有 Safari 支持(代理 Chrome 也应该支持它),但无论如何它并不比标准事件好:-/