2013-10-10 5 views
7

私はコンテンツを操作したい場所にCKEditorインスタンスを持ち、その後の位置にキャレットの位置を復元します。問題は、setDataに電話すると、キャレットをエディターの先頭にリセットすることです。これは、すべてのコンテンツを変更している場合にはわかりますが、データを少し変更するだけです。CKEditor:エディタを呼び出した後にキャレットの位置を復元する#setData

editor.on('change', function() { 
    var data = editor.getData(); 
    // manipulate `data` 
    var manipulatedData = data; 
    editor.setData(manipulatedData); 
}); 

答えて

1

あなたのための簡単な解決策が見つかりました。 setdataを追加する代わりに。 「簡単な解決策は、」にsetDataメソッドである

+0

おかげで、私はトラブルにsetDataをやった後、最後にキャレット位置を設定していたので、setDataメソッドが非同期であることを忘れないでくださいトリム "をキャラクタの制限にコールバックを行うのが最善です... setData関数 – Ewert

+0

コンテンツを複製していますか?その修正方法 –

0

データを挿入した後、終了位置にカーソルを維持するあなたは、その後、あなたのコンテンツにinsertHtmlを使用

editor.insertHtml(manipulatedData). 

inserthtml使用することができます。 setDataはasyncroniusなので、コールバック関数を使用する必要があります。これは動作するコードです:あなたはCKEditorバージョンか」をクリアしたいときに、この簡単な解決策は、素晴らしい作品

oEditor.setData('', {callback: function() { 
oEditor.insertHtml(YOUR_HTML); 
} 
}); 
関連する問題