我有div
标记contentEditable = 'true'
。当我从键盘输入文本然后调用undo
函数(document.execCommand('undo',false, null)
)时,我输入的所有文本都将被删除。我想撤消输入的最后一个字符。我怎么能这样做?
function doUNDO()
{
document.execCommand('undo',false, null);
}
<!DOCTYPE html>
<html>
<head>
<script src="formulas.js"></script>
<link rel="stylesheet" href="styles.css" type="text/css" media="screen" />
</head>
<body id="main" spellcheck="false">
<span contenteditable="false">
<button onclick="doUNDO()">UNDO</button>
</span>
<div id = "mainDiv"contenteditable="true">a</div>
</body>
</html>
答案 0 :(得分:-1)
在doUndo()
而不是调用execCommand
,你可以删除div中的最后一个字符,如果它不是空的。
E.g。
function doUNDO() {
var mainDIV = document.getElementById('mainDiv')
mainDIV.innerHTML = mainDIV.innerHTML.substr(0, mainDIV.innerHTML.length - 1);
}