首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript -像Google docs一样检测中文输入

Javascript -像Google docs一样检测中文输入
EN

Stack Overflow用户
提问于 2012-01-23 23:55:52
回答 2查看 1.7K关注 0票数 2

我正在尝试可靠地检测中文字符何时插入到文本框中。如果我将keyup、keydown和keypress处理程序添加到输入字段,则当用户从输入法编辑器(input method editor)选择一个中文字符时,不会触发任何事件。例如,在使用简体中文拼音的Mac/Firefox上,如果我键入:

然后ni打了1

我只收到'n‘的keydown事件和'1’的key up。未触发任何按键事件。注意:我正在使用GWT,但我认为这无关紧要。

我很好奇谷歌文档是如何做到这一点的。我特别注意到,对于中文,'n‘字符作为文本附加到带有"docs-texteventtarget- iframe“类的隐藏iframe中(而不是'i')。我可以想象他们这样做是为了检测何时插入了中文字符。

谷歌文档怎么知道输入语言变成了中文?例如,如果我的输入语言是英语,并且我键入'n',它不会被附加到隐藏的iframe。有没有检测汉字按键事件的常用技术?

EN

回答 2

Stack Overflow用户

发布于 2017-01-27 23:57:31

当用户使用输入法编辑器(Input Method Editor,输入法编辑器)输入文本时,在输入域的内容发生变化之前,输入法合成窗口中会发生大量交互。您可以通过compositionstartcompositionend事件检测到这一点。事实上,当合成正在进行时,您肯定不想从IME窃取keyup/keydows事件。在文本输入元素上,您可以通过input事件捕捉内容何时发生更改。

票数 1
EN

Stack Overflow用户

发布于 2013-04-12 03:40:31

我怀疑你不会得到一个按键事件,因为输入是来自IME而不是键盘,就像你不会得到键事件,如果你粘贴到一个字段中。

您可以尝试将ValueChangeHandler添加到文本框中,以查看是否捕获到您正在查找的事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8974470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档