如何只丢弃CKEditor撤消堆栈的最后一个元素?

时间:2015-04-02 08:02:22

标签: plugins ckeditor undo-redo

有没有办法只删除CKEditor撤消堆栈中的最后一个快照,或者我可以用另一个替换它。我应该自己实现它吗?

示例:

第1步

步骤2 - 应删除并替换为步骤3(在给定情况下)

第3步 - 应该成为第2步

只有在发生特殊事件时才能使用此功能。

1 个答案:

答案 0 :(得分:4)

如果撤消快照是用户操作的结果,请按照以下方式进行:

  1. 第1步。
  2. 第2步。
  3. CKEDITOR.instances.editor.fire( 'lockSnapshot' )
  4. 第3步。
  5. CKEDITOR.instances.editor.fire( 'unlockSnapshot' )
  6. 当然,您必须检测正在发生的事情并在正确的时间发起正确的事件。

    如果内容的更改是通过代码完成的,那么editor#updateSnapshot事件会更好:

    function() {
        editor.fire( 'saveSnapshot' );
        editor.document.body.append(...);
        // Makes new changes following the last undo snapshot a part of it.
        editor.fire( 'updateSnapshot' );
        ..
    }