温馨提示×

textbox怎样实现撤销重做

小樊
83
2024-06-29 17:37:40
栏目: 编程语言

要在textbox中实现撤销和重做功能,可以通过使用JavaScript来实现。以下是一个简单的示例代码:

<!DOCTYPE html>
<html>
<head>
  <title>撤销重做示例</title>
</head>
<body>

<textarea id="myTextarea" rows="4" cols="50"></textarea><br>
<button onclick="undo()">撤销</button>
<button onclick="redo()">重做</button>

<script>
  var textarea = document.getElementById('myTextarea');
  var undoStack = [];
  var redoStack = [];

  textarea.addEventListener('input', function() {
    undoStack.push(textarea.value);
    redoStack = [];
  });

  function undo() {
    if (undoStack.length > 1) {
      redoStack.push(undoStack.pop());
      textarea.value = undoStack[undoStack.length - 1];
    }
  }

  function redo() {
    if (redoStack.length > 0) {
      undoStack.push(redoStack.pop());
      textarea.value = undoStack[undoStack.length - 1];
    }
  }
</script>

</body>
</html>

在这个示例中,我们为textarea元素添加了一个input事件监听器,当用户输入时,会将当前内容存入undoStack数组中,并清空redoStack数组。点击撤销按钮时,会将当前内容弹出undoStack数组并存入redoStack数组,然后将上一个内容显示在textarea中。点击重做按钮时,会将redoStack数组中的内容弹出并存入undoStack数组,然后将最后一个内容显示在textarea中。

通过这种方式,我们可以实现简单的撤销和重做功能。您也可以根据自己的需求来扩展和改进这个示例。

0