Событие нажатия клавиши Tab с помощью protectDefault сбрасывает позицию курсора для запуска, когда вкладка является последней в серии непрерывных нажатий клавиш
У меня есть расширение Chrome Gmail, написанное в реагировать, где я переопределяю поведение вкладки.В свойствах listenDefault и stopImmediatePropagation в прослушивателе событий работают, только когда вкладка - единственное событие клавиатуры, нажатие которого происходит в пределах моргания курсора.Если табуляция является последним символом, нажатым в непрерывной последовательности нажатий клавиш, курсор сбрасывается в начало составленного сообщения, хотя событие по-прежнему имеет его значение по умолчанию заблокировано.Это поведение только для клавиши табуляции - например, тот же прослушиватель событий работает правильно, когда предотвращается "q".Предотвращение вкладок, кажется, работает, только если я сосредотачиваюсь на contentEditable после warnDefault
public componentDidMount () {
const { el } = this.props.editable;
el.addEventListener("keydown", this.testKeys.bind(this), true);
};
private testKeys (e:KeyboardEvent) {
if (e.key === "Tab") {
console.log("tab");
e.preventDefault();
e.stopImmediatePropagation();
this.props.editable.el.focus();
}
}
Как сохранить правильную позицию курсора, даже если вкладка является последней из серии нажатий клавиш?