0

目前,我听Enter钥匙开始发送消息。

但是对于多字节字符,Enter键应该选择某个字符。

问题是我不知道如何检测用户是否正在输入多字节字符,即使他在这个过程中,消息也会在他第一次Enter按键时发送。

所以用户体验真的很奇怪。

有人对此有解决方案吗?

如果您不明白我的意思,可以尝试在这里聊天,一旦您开始对话,切换到多字节模式,您就会明白我的意思。

链接在这里:

http://maishudi.com/OMegle.php

4

1 回答 1

0

我假设您对多字节输入的引用是对“输入法”(或 Windows 上的“输入法编辑器”)的引用。

不幸的是,目前还没有任何真正的解决方案——DOM3 将为此添加机制,但由于复杂性,它似乎已经放弃了这一点。

在您考虑浏览器之间的行为差​​异之前,部分复杂性来自各个输入法的截然不同的行为。一个很好的例子是只检查你收到的关于日语、韩语和(繁体和简体)中文的一组行为的关键事件。浏览器无法避免这种情况,因为它们正在响应输入编辑器直接触发的事件。

您真正可以依赖的唯一东西是keyDown事件,即使在 Opera 和 Firefox 中也没有那么多 - Safari 和 IE 都keyDown在 IME 组合期间提供事件,acharCode为 229,以及keyUp一个charCode对应于实际密钥的事件按下。

有一个textInput事件,但只有 Safari 支持(代理 Chrome 也应该支持它),但无论如何它并不比标准事件好:-/

于 2009-05-18T13:33:25.517 回答