CKEDITOR 4如何在使用自定义命令使用CTRL + Z撤消之前制作快照

时间:2013-11-09 16:42:49

标签: javascript ckeditor

问题如下:

我们有自定义块元素,例如quote。

我们希望有可能“CTRL + Z”(撤消)它的创作。

如何在插入html之前对ckeditor的当前状态进行快照,那么之后的CTRL + Z是否可用?

1 个答案:

答案 0 :(得分:6)

要保存快照,只需在编辑器实例上触发saveSnapshot事件即可。您必须在执行应该记录为单独快照的操作之前和之后执行此操作。例如:

editor.fire( 'saveSnapshot' );
editor.insertHtml( '...' );
editor.fire( 'saveSnapshot' );

此外,如果您的功能是单个命令,请记住编辑器在执行时记录快照。所以这没有意义

editor.fire( 'saveSnapshot' );
editor.execCommand( 'myCmd' );
editor.fire( 'saveSnapshot' );

更新:如果要合并一些可以创建自己快照的操作(如执行的命令),那么您可以在执行快照之前锁定快照并在之后解锁。

editor.fire( 'lockSnapshot' );
editor.execCommand( 'myCmd1' );
editor.execCommand( 'myCmd2' );
editor.fire( 'unlockSnapshot' );

快照锁定时,新快照不会被记录。如果快照堆栈在锁定快照时是最新的,则unlockSnapshot将更新上一个快照。但如果不是,则在下一个saveSnapshot被解雇之前不会记录所有这些更改。

这有点棘手,需要一些练习和测试才能正确使用这种机制:)。