网上用 compositionstart + compositionend + input 解决中文输入法问题的办法
node.addEventListener('compositionstart', function(){
cpLock = true;
})
node.addEventListener('compositionend', function(){
cpLock = false;
})
node.addEventListener('input', function(){
if(!cpLock)console.log(this.value);
});
现在貌似不好使了
测试了下发现:
compositionend 在 input 事件之后才触发 so。。。
于是只能在compositionend 里 也加上处理代码
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);
});
并不是完美方案:
如果有些浏览器compositionend 在 input 事件之前,就会执行两次,就得继续填坑。。。
暂时就这么地吧