输入中文的JQuery/DOM事件(ibus)

JQuery/DOM event for typing Chinese (ibus)?

本文关键字:事件 ibus DOM 中文 JQuery 输入      更新时间:2023-09-26

当我们键入时,有很多事件会被触发。

如keyup, keydown, keypress或其他。

是否只有当文本字段中的内容发生变化时才会触发其他事件?如果没有,如何编写一些javascript代码来实现这个功能

变更事件可能有帮助?

我创建了一个简单的工具来确定当按下键修改可满足元素中的文本节点时会发生什么。当我这样做时,我决定检查使用ibus时会发生什么,因为我在自己的工作中使用ibus。我确定当使用ibus时,生成的唯一键盘事件是具有which值的keyup事件,这是无用的。

这是我创建的小提琴:

http://jsfiddle.net/lddubeau/jWnL3/

  1. 打开Javascript控制台。

  2. 单击run .

  3. 在"toto"字的第2dn和第3个字符之间单击。

  4. 使用ibus输入一些东西。例如,输入"我".

  5. 根据浏览器的不同输出不同。在Chrome 29上,每次击键都会被记录下来,所以如果我使用tonepy方法输入"我",我会为每个"w"o"3"answers"1"获得keyup和keydown。(输入拼音,音调然后按1选择第一个选项。)最后一个事件是:

    event type: keyup
    which: 229
    keyCode: 229
    charCode: 0
    node value: 
       to我to
    

    在此之前的事件都有相同的值,除了一些是"keydown"类型,当然节点值显示"toto"直到最后一个事件。

    firefox23只注册了一个事件:

    "event type:" "keyup"
    "which:" 49
    "keyCode:" 49
    "charCode:" 0
    "node value:" "
        to我to
    "
    

    没有keydown或keypress事件产生。(当在ascii范围内输入字符时,每个键都有keydown, keypress和keyup)

which和keyCode的值似乎不对应任何有意义的东西。我已经检查了传递给事件处理程序的事件对象,并且没有看到任何字段表明用户刚刚键入了