При таргетинге только на Google Chrome можно ли отменить событие запуска композиции? Согласно этот черновик его можно отменить, однако при использовании 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 при нажатии ´
. Моя проблема сейчас в том, что если я спамлю клавишу ´
в течение нескольких секунд, мой метод не всегда отменяет событие, и это вызывает появление ´
.
То, что я делаю, тоже ощущается очень хакерский, поэтому мне было интересно, есть ли хороший, возможно, кроссбраузерный способ остановить событие Compositionstart?