5

問題は次のとおりです。

quote などのカスタム ブロック要素があります。

その作成を「CTRL + Z」(元に戻す)できるようにしたいと考えています。

HTMLを挿入する前にckeditorの現在の状態のスナップショットを作成する方法は?

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、最後のスナップショットが更新されます。saveSnapshotしかし、そうでない場合は、 nextが起動されるまで、これらの変更はすべて記録されません。

これは少しトリッキーで、このメカニズムを適切に使用するには、ある程度の練習とテストが必要です:)。

于 2013-11-10T16:44:18.543 に答える