как mimi c Ctrl-Z, нажав на кнопку - PullRequest
0 голосов
/ 27 марта 2020

Мне нужна функция undo - чтобы удалить последние изменения в текстовой области

execCommand-undo работает, но она устарела и может быть удалена в любое время.

Ctrl-Z на клавиатуре также работает, и мне нужно подражать c, нажав на кнопку.

Любая помощь?

1 Ответ

0 голосов
/ 27 марта 2020

Возможно, вам нужно вызвать событие -

var keyboard = $.Event("keypress");
keyboard.ctrlKey = true; //indicates pressing of Ctrl key
keyboard.keyCode = 90; //code for z
$(document).trigger(keyboard);

Вы можете запустить событие на элементе по вашему выбору (textarea).

Редактировать - ниже приведен только подход с использованием execCommand, который вы явно не сможете использовать по понятным причинам sh.

Оберните Undo функциональность в кнопку, которая выполняет Ctrl - z операция

function UndoCommand() {
  document.execCommand("undo", false, null);
}

function RedoCommand() {
  document.execCommand("redo", false, null);
}
.scrap {
  width: 100%;
  height: 100px;
  resize: vertical;
  margin-bottom: 2px;
}

.undoredo {
  width: 33%;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 5px;
}
<textarea class="scrap"></textarea>
<input class="undoredo" type="button" onClick="UndoCommand()" / value="Undo (Ctrl-Z)">
<input class="undoredo" type="button" onClick="RedoCommand()" / value="Redo (Ctrl-Y)">
...