我正在为 TinyMCE 编写一个自定义插件。其中一个新按钮在文档中进行了许多 DOM 操作。默认撤消行为会在更改中间创建一些撤消级别。如果用户在使用插件后点击撤消按钮,他/她就会看到一个操作部分反转并且实际上不处于正确状态的文档。
看起来曾经有一对名为 mceBeginUndoLevel / mceEndUnoLevel 的实例命令(在 3.3 版中删除)让开发人员开始/结束一个大型撤消批处理,该批处理将在单个操作中撤消......但我不查看文档中替换该功能的任何内容。
一些论坛帖子建议使用 editor.undoManager.add() 作为替代,这适用于您在操作期间需要更多级别的撤消,但实际上我想要的更少。
还有一个您可以挂钩的 undoManager.onBeforeAdd 事件,但查看 undoManager 的源代码,我认为挂钩不会让您中止撤消快照。
那么,有没有一种合适的方法来批处理我使用现有 API 看不到的撤消操作?如果没有,我唯一的其他选择似乎是修补 undoManager 以允许 onBeforeAdd 挂钩中止快照。