---
title: "History API — отмена, повтор, транзакции"
description: "Программная отмена и повтор действий, а также объединение нескольких операций в одну отменяемую транзакцию."
source: https://blokeditor.com/ru/docs/history-api/
lastmod: 2026-09-07
---

Фреймворк JavaScript

Редактирование История

На этой странице history.undo()

# History API: отмена, повтор и транзакции

Управление функциональностью отмены/повтора для операций редактора.

[Редактировать на GitHub](https://github.com/JackUait/blok/blob/main/docs/src/components/api/api-data.ts)

### Как получить экземпляр редактора

Методы ниже вызываются на редакторе, созданном через new Blok(). Они доступны после того, как разрешится editor.isReady.

TypeScript

```
// You already hold the instance returned by the constructor.
const editor = new Blok({ holder: 'editor' });
await editor.isReady;

// Call any API method on it.
editor.caret.setToLastBlock('end');
```

## Методы

### history.undo()

void

Отменить последнюю операцию.

Когда использовать

Программный Ctrl/Cmd+Z. Ничего не делает, когда отменять нечего — проверяйте `canUndo()` для своих кнопок.

TypeScript

```
// Undo last change
editor.history.undo();

// Undo multiple times
for (let i = 0; i < 3; i++) {
  editor.history.undo();
}
```

### history.redo()

void

Повторить последнюю отменённую операцию.

Когда использовать

Программный Ctrl/Cmd+Shift+Z. Проверяйте `canRedo()` в своём UI, чтобы кнопка корректно отключалась.

TypeScript

```
// Redo last undone change
editor.history.redo();

// Redo multiple times
for (let i = 0; i < 3; i++) {
  editor.history.redo();
}
```

### history.canUndo()

boolean

Проверить, доступна ли отмена (есть ли операции для отмены).

Когда использовать

Используйте для включения/отключения своей кнопки отмены; в паре с `undo()`.

TypeScript

```
if (editor.history.canUndo()) {
  editor.history.undo();
} else {
  console.log('Nothing to undo');
}
```

### history.canRedo()

boolean

Проверить, доступен ли повтор (есть ли отменённые операции для повтора).

Когда использовать

Используйте для включения/отключения своей кнопки повтора; в паре с `redo()`.

TypeScript

```
if (editor.history.canRedo()) {
  editor.history.redo();
} else {
  console.log('Nothing to redo');
}
```

### history.clear()

void

Очистить всю историю. Удаляет все записи отмены/повтора.

Когда использовать

Сбрасывает весь стек отмены — вызывайте после загрузки нового контента, чтобы нельзя было отменить до предыдущего документа.

TypeScript

```
// Clear history when loading new content.
// render() is async and records its own undo entries,
// so await it before clearing.
await editor.blocks.render(newData);
editor.history.clear();
```
