2013-10-10 21 views
7

Tôi có một cá thể CKEditor nơi tôi muốn thao tác nội dung và khôi phục vị trí dấu mũ về vị trí sau đó. Vấn đề là, khi bạn gọi setData, nó sẽ đặt lại dấu mũ vào đầu trình chỉnh sửa. Điều này là dễ hiểu nếu bạn đang thay đổi tất cả nội dung, nhưng tôi chỉ thực hiện những thay đổi nhỏ đối với dữ liệu.CKEditor: Khôi phục vị trí dấu mũ sau khi gọi trình soạn thảo # setData

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

Trả lời

1

Tôi đã tìm thấy giải pháp đơn giản cho bạn truy vấn. thay vì thêm setdata. bạn có thể sử dụng inserthtml

editor.insertHtml(manipulatedData). 

sẽ giữ con trỏ ở vị trí cuối cùng sau khi chèn dữ liệu

+0

Cảm ơn giải pháp đơn giản này rất tuyệt, tôi gặp khó khăn khi đặt vị trí dấu mũ sau khi thực hiện setData, đừng quên setData là không đồng bộ nên khi bạn muốn xóa CKEditor hoặc " cắt "giới hạn ký tự tốt nhất là thực hiện gọi lại ... tới hàm setData – Ewert

+0

Đó là nội dung trùng lặp? cách khắc phục điều đó –

0

Một giải pháp đơn giản là SetData để '', sau đó sử dụng insertHtml với nội dung của bạn. setData là asyncronius, vì vậy bạn phải sử dụng chức năng gọi lại. Đây là mã hoạt động:

oEditor.setData('', {callback: function() { 
oEditor.insertHtml(YOUR_HTML); 
} 
}); 
Các vấn đề liên quan