16

我正在使用 SWT 通过将contentEditablebody 标记的属性设置为true.

当我执行一些命令document.execCommand('bold')时,它可以完美运行。但是当我尝试撤消操作时document.execCommand('undo')没有任何反应。我不知道我是否必须设置任何撤消管理器或做类似的事情。你能帮我吗 ?

4

2 回答 2

1

这似乎是一个常见的问题,因为谷歌搜索会发现。以下站点有一个很好的兼容性表和演示用于测试。

他们在演示页面上也有以下声明:

撤消/重做在 IE 中不起作用。问题是右侧文本区域中的更改也添加到了撤消/重做堆栈中。最终版本不会有textarea,所以没必要解决问题。

于 2012-12-13T20:50:29.040 回答
1

根据这个 quirksmode table,撤消/重做适用于所有主要浏览器,但它有这个注释:

撤消在 Safari 中有效,但如果您过于频繁地撤消/重做,它会崩溃。在 3 中解决。如果您在可编辑区域进行自己的更改,撤消/重做在 Mozilla 和 Safari 中继续工作(尽管它忽略您的自定义更改),但在 IE 和 Opera 中它停止工作。

我不知道 SWT 会如何影响这一点,但使用它可能会更好

document.execCommand("undo", "", null)

ExecCommand 一直有很多 bug,我对 SWT 了解不多,但希望对你有所帮助。

于 2012-12-27T20:26:36.303 回答