【发布时间】:2012-01-23 15:55:51
【问题描述】:
我正在尝试可靠地检测何时将中文字符插入到文本框中。如果我将 keyup、keydown 和 keypress 处理程序添加到输入字段,则当用户从 IME(输入法编辑器)中选择中文字符时不会触发任何事件。例如,在带有简体中文拼音的 Mac/Firefox 上,如果我输入:
ni 然后点击 1
我只收到 'n' 的 keydown 事件和 '1' 的 key up。没有按键事件被触发。注意:我正在使用 GWT,但我认为这无关紧要。
我很好奇 Google 文档是如何做到这一点的。我特别注意到对于中文,“n”字符作为文本附加到具有“docs-texteventtarget-iframe”类的隐藏 iframe(但不是“i”)。我想他们这样做是为了检测何时插入了汉字。
Google 文档如何知道输入语言已更改为中文?例如,如果我的输入语言是英语并且我输入了“n”,则它不会附加到那个隐藏的 iframe。有没有常用的检测汉字按键事件的技术?
【问题讨论】:
-
您是否尝试添加更改处理程序?
标签: javascript gwt input user-input cjk