compositionEnd 和 input 事件(中文輸入法問題)


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

暫時就這么地吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM