compositionEnd 和 input 事件(中文输入法问题)

网上用 compositionstart + compositionend + input 解决中文输入法问题的办法node

复制代码

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。。。this

因而只能在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);
});

复制代码

 

并非完美方案:input

若是有些浏览器compositionend  在 input 事件以前,就会执行两次,就得继续填坑。。。it

暂时就这么地吧io

相关文章
相关标签/搜索