sergeytolkachyov
@sergeytolkachyov
https://web-tolk.ru

Как добавить действие для отмены по ctrl+z на js?

Есть https://developer.mozilla.org/ru/docs/Web/API/Docu... Там есть команды для отмены последнего действия - undo. Но отменяются действия, сделанные пользователем.
Ситуация: текст из textarea по нажатии на кнопку обрабатывается и заменяется с помощью js. То есть сам пользователь нажал только на элемент интерфейса, само "редактирование" было на js, Если он нажмет ctrl+z или кнопку редактора, то будет отменяться действие ДО обработки текста.
Можно ли каким-то образом в список действий для отмены добавить своё?
  • Вопрос задан
  • 289 просмотров
Решения вопроса 1
HardBot
@HardBot
back-end, front-end developer
Да, вы можете добавить свои действия в список истории браузера для отмены и повтора с помощью методов document.execCommand() и document.undoManager. Эти методы позволяют добавлять новые действия в стек истории браузера.

Пример кода:
// Получаем элемент textarea
const textarea = document.querySelector('textarea');

// Заменяем текст в textarea
textarea.value = 'Новый текст';

// Получаем объект undoManager
const undoManager = document.undoManager;

// Добавляем новое действие в стек истории
undoManager.add({
  undo: function() {
    textarea.value = 'Старый текст';
  },
  redo: function() {
    textarea.value = 'Новый текст';
  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы