Обсидианский плагин: как подавить действия редактора (например, ввести вставку Newline) в пользовательский режим ввода?Javascript

Форум по Javascript
Ответить
Anonymous
 Обсидианский плагин: как подавить действия редактора (например, ввести вставку Newline) в пользовательский режим ввода?

Сообщение Anonymous »

Я пишу плагин обсидиана, который активирует пользовательский «режим поиска». Находясь в этом режиме, я прислушиваюсь к событиям Keydown на уровне документа, и я хочу захватить клавиши, такие как Enter, Escape, Backspace и все ввод символов без этих ключей, запускающих поведение по умолчанию в редакторе. Я называю evt.preventdefault () и evt.stoppropagation () внутри моего обработчика. Однако, когда я нажимаю Ente In Ente в режиме поиска, редактор все еще вставляет Newline, хотя я называю evt.preventdefault () .
this.registerDomEvent(document, "keydown", (evt: KeyboardEvent) => {
if (this.findMode) {
if (evt.key === "Escape") {
this.exitFindMode();
evt.preventDefault();
} else if (evt.key === "Enter") {
this.findAndHighlightInCurrentLine();
evt.preventDefault();
evt.stopPropagation();
evt.stopImmediatePropagation();
} else if (evt.key === "Backspace") {
if (this.searchBuffer.length > 0) {
this.searchBuffer = this.searchBuffer.substring(
0,
this.searchBuffer.length - 1
);
this.updateStatusBar();
}
evt.preventDefault();
} else if (
!evt.ctrlKey &&
!evt.altKey &&
!evt.metaKey &&
evt.key.length === 1
) {
this.searchBuffer += evt.key;
this.updateStatusBar();
evt.preventDefault();
}
}
});


Подробнее здесь: https://stackoverflow.com/questions/796 ... -newline-i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»