События
Список основных событий, которые можно обрабатывать в редакторе. События регистрируются с помощью метода on класса Events.
Методы Events
| Функция | Сигнатура | Описание |
|---|---|---|
| refresh | refresh(): void | Обновляет основные обработчики событий редактора. |
| change | change(event: TexditorEventBase): void | Запускает событие изменения редактора с указанными параметрами. |
| destroy | destroy(): void | Уничтожает менеджер событий и очищает все слушатели. |
Основные публичные события
| Событие | Описание | Параметры |
|---|---|---|
| onChange | Вызывается при любом изменении контента. | { type: string, ... } (Объект TexditorEventBase) |
| focus | Вызывается в начале фокусировки на блоке. | { domEvent: FocusEvent } |
| focusEnd | Вызывается после обработки фокусировки на блоке. | { domEvent: FocusEvent } |
| click | Вызывается при клике на блоке. | { domEvent: MouseEvent } |
| clickEnd | Вызывается после обработки клика на блоке. | { domEvent: MouseEvent } |
| blur | Вызывается при потере фокуса блоком. | { domEvent: FocusEvent } |
| keyup | Вызывается при отпускании клавиши на блоке. | { domEvent: KeyboardEvent } |
| keyupEnd | Вызывается после обработки отпускания клавиши. | { domEvent: KeyboardEvent } |
| documentKeydown | Вызывается при нажатии клавиши на уровне документа (начало). | { domEvent: KeyboardEvent } |
| documentKeydownEnd | Вызывается после обработки нажатия клавиши на уровне документа. | { domEvent: KeyboardEvent } |
| documentKeydownBackspace | Вызывается при нажатии Backspace/Delete на уровне документа. | { domEvent: KeyboardEvent } |
| keydown | Вызывается в начале обработки нажатия клавиши на блоке. | { domEvent: KeyboardEvent } |
| keydownEnterKey | Вызывается при нажатии клавиши Enter. | { domEvent: KeyboardEvent } |
| keydownEnterKeyEnd | Вызывается после обработки нажатия Enter. | { domEvent: KeyboardEvent } |
| keydownBackspaceKey | Вызывается при нажатии клавиши Backspace. | { domEvent: KeyboardEvent } |
| keydownBackspaceKeyEnd | Вызывается после обработки нажатия Backspace. | { domEvent: KeyboardEvent } |
| keydownEnd | Вызывается после обработки нажатия клавиши на блоке. | { domEvent: KeyboardEvent } |
| undo | Вызывается при выполнении операции отмены (Ctrl+Z). | { type: 'undo' } |
| redo | Вызывается при выполнении операции повтора (Ctrl+Shift+Z). | { type: 'redo' } |
| onPaste | Вызывается в начале обработки вставки. | { domEvent: ClipboardEvent } |
| onPasteEnd | Вызывается после обработки вставки. | { domEvent: ClipboardEvent } |
| onDragStart | Вызывается при начале перетаскивания. | { domEvent: DragEvent } |
| onDragLeave | Вызывается, когда перетаскиваемый элемент покидает область. | { domEvent: DragEvent } |
| onDragOver | Вызывается при наведении перетаскиваемого элемента на область. | { domEvent: DragEvent } |
| onDrag | Вызывается в процессе перетаскивания. | { domEvent: DragEvent } |
| onDragEnd | Вызывается при завершении перетаскивания. | { domEvent: DragEvent } |
| onDrop | Вызывается при сбросе перетаскиваемого элемента. | { domEvent: DragEvent } |
| onSelectionChange | Вызывается в начале обработки изменения выделения. | { domEvent: Event } |
| onSelectionChangeEnd | Вызывается после обработки изменения выделения. | { domEvent: Event } |
| save | Вызывается в начале процесса сохранения данных. | {} |
| saveEach | Вызывается для каждого блока в процессе сохранения. | { blockElement: BlockElement } |
| saveEachEnd | Вызывается после обработки каждого блока при сохранении. | { blockElement: BlockElement } |
| saveEnd | Вызывается после завершения процесса сохранения всех блоков. | {} |
Пример использования событий
javascript
import { Texditor } from "texditor";
const editor = new Texditor({
handle: "my-editor",
onReady: (evt) => {
},
onChange: (evt) => {
const editorInstance = evt.instance;
if(evt?.type == 'click') {
// ...
}
console.log(editorInstance.getContent())
}
});
// Подписка на событие изменения содержимого
editor.events.on('onChange', (evt) => {
console.log('Содержимое изменено:', evt);
});
// Подписка на событие нажатия клавиши
editor.events.on('keydown', (evt) => {
console.log('Клавиша нажата:', evt.domEvent);
});
// Подписка на событие повторения действия
editor.events.on('redo', (evt) => {
console.log('Действие повторено');
});