要在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中。
通過這種方式,我們可以實現簡單的撤銷和重做功能。您也可以根據自己的需求來擴展和改進這個示例。