CK Editor 내용 초기화(.setData('') 후 새로운 데이터가 set되지 않은 경우)

리열·2023년 3월 15일
1

ck 에디터를 이용한 프로젝트가 있었습니다.

a 메뉴에 문구를 등록합니다.
b 메뉴에서 a에서 등록한 문구 중 원하는 문구를 가져와 set을 하는 기능이 있습니다.
물론 직접 작성할 수도 있습니다.
문구를 불러오는 경우에 작성한 내용을 초기화한 후 내용에 set을 하는 기능이 필요했습니다.

ckEditor.setData(''); 로 기존 내용 초기화하고
ckEditor.insertText('가져온 문구');

ckEditor. 이 부분은 각 프로젝트 설정에 따라 다를 것 입니다.
제가 진행한 프로젝트에서는 입력한 내용 그대로 태그 포함해서 가져와야했기에
insertText()를 사용했습니다.

위 코드를 적용하니 기존에 작성한 내용이 사라지기만할 뿐
새로 가져올 문구를 set하지 못했습니다.

insertHtml()로 바꿔봐도 결과는 그대로였습니다.

setData('')에 setData('새로운 가져올 문구')를 적용하니
내용은 가져오지만 같이 작성한 태그들은 가져오지 못해 원하는 결과를 얻지 못했습니다.

contentEditor.setData('');
setTimeout(function(){
    contentEditor.insertText($(ele).find('td').eq(1).text());
}, 100);

해결을 위해 콜백함수를 사용했습니다.
0, 10을 했을때는 적용이 되지 않다가
선임분이 100정도는 괜찮다며 바꿔보라는 의견에 적용했더니 바로 원하는 결과가 나타났습니다.

다른 프로젝트에서도 CK 에디터를 주로 사용할 것 같아 기록 남깁니다.

profile
n년차 신입 개발자

0개의 댓글