5

问题如下:

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

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

如何在插入其html之前制作ckeditor当前状态的快照,以便之后可以使用CTRL + Z?

4

1 回答 1

7

要保存快照,只需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则将更新最后一个快照。但如果不是,那么所有这些更改将不会被记录,直到 nextsaveSnapshot被触发。

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

于 2013-11-10T16:44:18.543 回答