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

标签 plugins ckeditor undo-redo

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

示例:

第 1 步

第 2 步——应删除并替换为第 3 步(根据给定情况)

第 3 步——应该成为第 2 步

此功能仅在发生特殊事件时才可用。

最佳答案

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

  1. 第 1 步。
  2. 第 2 步。
  3. CKEDITOR.instances.editor.fire( 'lockSnapshot' )
  4. 第 3 步。
  5. CKEDITOR.instances.editor.fire( 'unlockSnapshot' )

当然,您必须检测正在发生的情况并在正确的时间触发正确的事件。

如果内容的更改是通过代码完成的,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' );
    ..
}

关于plugins - 如何仅丢弃 CKEditor 撤消堆栈的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29407895/

相关文章:

c++ - 使用插件更改 C++ 应用程序中的默认行为

javascript - DOKSoft CKEditor 表格工具的配置

wpf - 使用 PostSharp 为嵌套属性或集合撤消重做

ios - iOS 绘画应用的撤消/重做

grails - 从插件_install.groovy脚本中获取Grails版本

c# - 如何为 C# 应用程序开发 C++ 插件?

javascript - 在页面加载时选择 jstree 插件中的节点

javascript - 强制 CKEDITOR 停止展开 block

javascript - 内联 CKEditor 在启动时将 <br> 添加到空 div