網上用 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 事件之前,就會執行兩次,就得繼續填坑。。。
暫時就這么地吧
