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