Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 撤销div标记_Javascript_Html - Fatal编程技术网

Javascript 撤销div标记

Javascript 撤销div标记,javascript,html,Javascript,Html,我有div标记,带有contentEditable='true'。当我从键盘输入文本,然后调用undo功能(document.execCommand('undo',false,null))时,我输入的所有文本都会被删除。我只想撤消最后键入的字符。我该怎么做 函数doUNDO() { document.execCommand('undo',false,null); } 撤消 A. 在doUndo()中,不调用execCommand只需从div中删除最后一个字符(如果不是空的话) 例如 }在do

我有
div
标记,带有
contentEditable='true'
。当我从键盘输入文本,然后调用
undo
功能(
document.execCommand('undo',false,null)
)时,我输入的所有文本都会被删除。我只想撤消最后键入的字符。我该怎么做

函数doUNDO()
{
document.execCommand('undo',false,null);
}

撤消
A.
doUndo()
中,不调用
execCommand
只需从div中删除最后一个字符(如果不是空的话)

例如

}

doUndo()
中,如果div中的最后一个字符不是空的,您可以从中删除它,而不是调用
execCommand

例如


}

键入的最后一个字符不一定——事实上,通常不是——是div中的最后一个字符。此外,设置div的
innerHTML
可能会搞乱插入点的位置。这种逻辑对我没有帮助,因为我的div标记可以在最后一个位置包含另一个标记。键入的最后一个字符不一定是div中的最后一个字符,事实上,通常不是。此外,设置div的
innerHTML
可能会搞乱插入点的位置。这种逻辑对我没有帮助,因为我的div标签可以在最后一个位置包含另一个标签。这是一种不常见的模式。通常“撤消”指的是一段键入内容,而不是一个字符。键盘可用时,删除键已存在。“back”通常用于删除最后一个字符。可能需要更多的解释。是否有人在这个部门写了一篇文章,或者是一些他们在许多地方遍历和编辑的长文章?如果我删除了一个单词,然后我想撤销那个动作呢?这似乎就是你要找的@谢里夫德里克:不,这是关于在文本区域而不是内容可编辑div上使用命令,而不是关于更改命令的操作。这是一种不常见的模式。通常“撤消”指的是一段键入内容,而不是一个字符。键盘可用时,删除键已存在。“back”通常用于删除最后一个字符。可能需要更多的解释。是否有人在这个部门写了一篇文章,或者是一些他们在许多地方遍历和编辑的长文章?如果我删除了一个单词,然后我想撤销那个动作呢?这似乎就是你要找的@谢里夫德里克:不,这是关于在文本区域上使用命令而不是在可编辑的div上使用命令,而不是关于更改命令的操作。
function doUNDO() {
    var mainDIV = document.getElementById('mainDiv') 
    mainDIV.innerHTML = mainDIV.innerHTML.substr(0, mainDIV.innerHTML.length - 1);