2013-10-10 16 views
7

Mam instancję CKEditor, w której chcę manipulować treścią i przywrócić pozycję karetki tam, gdzie była później. Problem polega na tym, że po wywołaniu setData, resetuje ona znacznik na początku edytora. Jest to zrozumiałe, jeśli zmieniasz całą zawartość, ale wprowadzam tylko drobne zmiany w danych.CKEditor: Przywróć pozycję opiekuna po wywołaniu edytora # setData

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

Odpowiedz

1

Znalazłem proste rozwiązanie dla ciebie zapytanie. zamiast dodawać setdata. można użyć inserthtml

editor.insertHtml(manipulatedData). 

utrzyma kursor w pozycji końcowej po włożeniu dane

+0

Thanks to proste rozwiązanie działa świetnie, miałem problemy z Ustawianie pozycji daszka na końcu po zrobieniu setData, nie zapomnij setData jest asynchroniczna więc kiedy chcesz wyczyścić CKEditor lub " przycinanie "do limitu znaków najlepiej wykonać wywołanie zwrotne ... do funkcji setData – Ewert

+0

Powielanie treści? jak to naprawić –

0

Prostym rozwiązaniem jest setData do „”, a następnie użyć insertHtml z treści. setData jest asyncronius, więc musisz użyć funkcji zwrotnej. Jest to kod, który działa:

oEditor.setData('', {callback: function() { 
oEditor.insertHtml(YOUR_HTML); 
} 
}); 
Powiązane problemy