javascript - 我可以使用 execCommand 撤消来撤消不是使用 execCommand 执行的操作吗?

标签 javascript html google-chrome undo-redo execcommand

我正在尝试使用 execCommand 实现所见即所得的编辑器(我知道存在许多 WYSIWYG 编辑器,但它们对我来说都不够好)。现在,一切正常,但如果我尝试使用 backColor 命令,它似乎不起作用。

我想做的是简单地在元素上设置背景 CSS,然后以某种方式将其添加到撤消/重做队列中,这样 Ctrl + Z 将改回自定义更改。

有什么地方可以做吗?或者我仅限于撤消/重做 exec 命令?

我只对 Chrome 解决方案感兴趣,不支持 IE 和 FF。

最佳答案

我的答案可能不是最漂亮的,但 fork 很好:)

我用过

var undo = []; // array
var redo = [];
// to store the undo and redo data
// and added event listener to textarea

document.getElementById("textarea").oninput = function(){
    // do something
}

http://jsfiddle.net/7z6kow73/1/

关于javascript - 我可以使用 execCommand 撤消来撤消不是使用 execCommand 执行的操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22940690/

相关文章:

google-chrome - 在 Chrome 中嵌入 .WMV 文件

javascript - 单击和双击问题

javascript - 如何使 Canvas 形状随着时间的推移而褪色和消失?

html - CSS:使图像流出父容器

google-chrome - 在 Google Chrome 扩展中添加子上下文菜单

java - BlobstoreServiceserve() 不提供内容长度

javascript - CPU 使用率不断增长;有没有办法在 JavaScript 中删除我未使用的对象?

javascript - ThreeJS 不同形状的对象纹理不起作用

javascript - 重新初始化引导日期选择器的结束日期

html - 在 Angular 6 中折叠/展开嵌套的 div