关于中文输入法的问题
compositionstart
事件触发于一段文字的输入之前可理解为:当浏览器有非直接的文字输入时触发。
compositionend 事件触发于一段文字的输入之后可理解为:当浏览器是直接的文字输入时触发
在遇到input事件与中文输入法的问题可以用以下方案解决:
var cpLock = false;
node.addEventListener('compositionstart', function(){
cpLock = true;
})
node.addEventListener('compositionend', function(){
cpLock = false;
if(!cpLock) console.log(this.value);
})
node.addEventListener('input', function(){
if(!cpLock) console.log(this.value);
});