Я пишу плагин обсидиана, который активирует пользовательский «режим поиска». Находясь в этом режиме, я прислушиваюсь к событиям 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
Обсидианский плагин: как подавить действия редактора (например, ввести вставку Newline) в пользовательский режим ввода? ⇐ Javascript
Форум по Javascript
1747438099
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();
}
}
});
Подробнее здесь: [url]https://stackoverflow.com/questions/79626047/obsidian-plugin-how-to-suppress-editor-actions-like-enter-inserting-newline-i[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия