网上用 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 事件之前,就会执行两次,就得继续填坑。。。

暂时就这么地吧

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-23
  • 2021-12-27
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案