|
1
10
您可以通过以下方式确保编辑操作的撤消功能
查看这个显示 大胆的 命令(当然可以取消): http://jsfiddle.net/qL6Lpy0c/ |
|
|
2
10
此代码将保存数组中contenteditable的所有更改。您可以通过调用
|
|
|
3
6
正如其他人所说的,简单的答案是使用document.execCommand来保留浏览器的撤消/重做。如果您需要以任何方式以不可行的方式编辑文本(如支持多行制表符缩进或其他操作文本的快捷方式),则在设置新文本状态时应使用document.execCommand(“insertHTML”)或“insertText”。insertText将在您编辑时创建新的div子项,这可能会很麻烦,而“insertHTML”不会(但“insertHTML”有一些IE支持问题,您可能需要解决,请在其他地方详细说明)。 这部分让我陷入了一个巨大的循环,这就是为什么我要写一个新的答案,因为我没有发现它被提及 在任何地方 : 您可能还需要抓住 粘贴 事件并将其转换为execCommand('insertHTML'),否则在粘贴之后可能进行的任何编程选择更改(如重置光标等)都有可能会向您抛出错误,指出节点不够长,无法进行新选择,尽管它明显存在。粘贴后,DOM不知何故无法识别Div.firstNode的新长度,但它将在您使用execCommand('insertHTML')后更新它。可能有其他解决方案,但这很简单:
|