当仅针对Google Chrome时,是否可以取消compositionstart事件?根据这个草案,它是可取消的,但是,当使用e.preventDefault()
时,如下所示:
document.querySelector("textarea").addEventListener('compositionstart', (e) => {
e.preventDefault();
});
例如,当按下´
键时,Chrome仍然开始组合。
我目前有一种相当可靠的方法来阻止这种情况,即使用
document.querySelector("textarea").addEventListener('compositionstart', function() {
this.blur();
setTimeout(() => this.focus(), 0);
});
<textarea>Spam ´ here</textarea>
´
键时就会“取消” compositionstart 事件。我的问题是,如果我连续几秒钟 spam ´
键,则我的方法并不总是取消该事件,这会导致出现一个 ´
。我的做法也感觉很 hacky,所以我想知道有没有一种好的、可能跨浏览器的方法来停止 compositionstart 事件?