复合事件
复合事件是 DOM3 中新增的一类事件,用于处理 IME 的输入序列
IME(输入法编辑器)通常用于输入物理键盘上找不到的字符,而这种输入方式通常需要同时按住多个键,但最终只输入一个字符
复合事件就是针对检测和处理这种输入而设计的
复合事件有以下三种:
- compositionstart:在IME的文本复合系统打开时触发
- compositionupdate:向输入字段中插入新字符时触发
- compositionend:在IME的文本复合系统关闭时触发,表示返回键盘的正常输入状态
在大体上复合事件与文本事件在很多方面相似
在其触发时,目标是接收文本的输入字段,但它比文本事件对象多一个data属性
data属性的值,为以下值中的一个:
- 在触发 compositionstart 时,值为正在编辑的文本
- 在触发 compositionupdate 时,值为正在插入的文本
- 在触发 compositionend 时,值为此次操作已经插入的字符
- 否则为空字符串
复合事件可冒泡
对于是否支持复合事件,可以使用以下代码检测:
var isSupported = document.implementation.hasFeature("CompositionEvent","3.0");