2

我正在为 TinyMCE 编写一个自定义插件。其中一个新按钮在文档中进行了许多 DOM 操作。默认撤消行为会在更改中间创建一些撤消级别。如果用户在使用插件后点击撤消按钮,他/她就会看到一个操作部分反转并且实际上不处于正确状态的文档。

看起来曾经有一对名为 mceBeginUndoLevel / mceEndUnoLevel 的实例命令(在 3.3 版中删除)让开发人员开始/结束一个大型撤消批处理,该批处理将在单个操作中撤消......但我不查看文档中替换该功能的任何内容。

一些论坛帖子建议使用 editor.undoManager.add() 作为替代,这适用于您在操作期间需要更多级别的撤消,但实际上我想要的更少。

还有一个您可以挂钩的 undoManager.onBeforeAdd 事件,但查看 undoManager 的源代码,我认为挂钩不会让您中止撤消快照。

那么,有没有一种合适的方法来批处理我使用现有 API 看不到的撤消操作?如果没有,我唯一的其他选择似乎是修补 undoManager 以允许 onBeforeAdd 挂钩中止快照。

4

1 回答 1

1

我建议覆盖当前的 UndoManager。它只是一个相当小的文件。这就是我们需要做的,以抑制创建一些不需要的撤消步骤。

于 2013-04-24T15:26:19.657 回答