Wat*_*ink 5 javascript ckeditor
问题如下:
我们有自定义块元素,例如quote.
我们希望有可能"CTRL + Z"(撤销)它的创作.
如何在插入html之前对ckeditor的当前状态进行快照,那么之后的CTRL + Z是否可用?
要保存快照,只需saveSnapshot在编辑器实例上触发事件.您必须在执行应该记录为单独快照的操作之前和之后执行此操作.例如:
editor.fire( 'saveSnapshot' );
editor.insertHtml( '...' );
editor.fire( 'saveSnapshot' );
Run Code Online (Sandbox Code Playgroud)
此外,如果您的功能是单个命令,请记住编辑器在执行时记录快照.所以这没有意义:
editor.fire( 'saveSnapshot' );
editor.execCommand( 'myCmd' );
editor.fire( 'saveSnapshot' );
Run Code Online (Sandbox Code Playgroud)
更新:如果要合并某些可以创建自己快照的操作(如执行的命令),则可以在执行快照之前锁定快照并在之后解锁.
editor.fire( 'lockSnapshot' );
editor.execCommand( 'myCmd1' );
editor.execCommand( 'myCmd2' );
editor.fire( 'unlockSnapshot' );
Run Code Online (Sandbox Code Playgroud)
快照锁定时,新快照不会被记录.如果快照堆栈在锁定快照unlockSnapshot时是最新的,则将更新上一个快照.但如果不是那么所有这些变化都不会被记录,直到下一次saveSnapshot被解雇.
这有点棘手,需要一些练习和测试才能正确使用这种机制:).