CKEditor 4 사용하기
"CKEditor 4 사용하기"
[2013.06.20] 문제발생
- 에디터에 커서를 놓고 초기 한/영 설정이 한글인 경우 최초 입력되는 값은 영어로 그 후 한글로 입력되는 문제.
예를 들어 "가" 를 입력했을때 rㅏ 알파펫 알과 아 입력되는 문제
- 이벤트 key 를 사용하였을 경우 첫째줄은 문제없이 입력되지만, 두번째 줄부터 자음과 모음이 분리되어 입력됨
[2013.11.21] 최근 4.3 버전으로 해보니 잘 됩니다.
최근 인터넷 익스플로러 10 ( IE10 ) 에서 CKEditor 3 의 문제점이 발견되고 있다.
그래서 최근 버전 4를 사용하면 문제점이 해결된다.
하지만 많은 부분이 변경되었거 jQuery 도 지원하지 않는 단점이 있다.
어떤 사람은 쉽게 구현이 가능할 수 도 있고, 아닐수도 있기에 사용하기라는 팁을 블로깅하기로 했다.
그리고 기존의 소스를 그대로 살리면서 업그레이드가 가능한지를 테스트했기에 다소 시간이 걸렸다.
단순히 에디터의 기능을 사용햇다면 큰 문제는 없다.
다만 첨부파일을 에디터에 삽입하는 기능이나 제거하는 기능등 파일 첨부와 연동되는 부분 그리고
저장 (서버로 전송) 할때 입력값이 잘 전달 되지가 파악해야 했다.
* 첨부파일 에디터 삽입은 기존(CKEditor3) 과 동일함.
기존에도 그랬는지 잘 모르겟으나... 이번 CKEditor 4 는 스킨과 플러그인을 이용하여 기능을 확장할 수 있다.
그래서 버전마다 기능이 제한적이다.
버전 종류는 베이직 , 스텐다드 , 풀 있으며, 본인이 직접 골라서 내려받으려면 Biulder 를 이용하면 된다.
[참고] 2013.06.19 풀버전을 내려받고 ckeditor 폴더명을 바꿀 경우 크롬에서 오류가 발생하고 있다.
CKEditor 4 데모 http://ckeditor.com/demo
Builder http://ckeditor.com/builder
빌더에서는 서비스팩 버전과 스킨 및 에디터 기능들은 직접 고를 수 있게 되어있다.
1. 에디터 호출
<script src="/ckeditor/ckeditor.js"></script>
<textarea name="editor1"><p>Initial value.</p></textarea>
<script>
CKEDITOR.replace( 'editor1' );
</script>
<script> var ckeditor_config = { resize_enabled : false, // 에디터 리사이즈 여부 autoUpdateElement : true, // 자동 textarea 업데이트 여부 (안됨) enterMode : CKEDITOR.ENTER_BR , // 에디터 엔터를 <br> 태그를 사용함. shiftEnterMode : CKEDITOR.ENTER_P , // 에디터 시프트 + 엔터를 <p> 태그를 사용함 toolbarCanCollapse : true , // 에디터 툴바 숨기기 기능 여부 extraPlugins : "tableresize" , // 에디터의 플러그인을 추가할 경우 이름 입력 ( 테이블 리사이즈 플러그인을 내려 받아야함.) removePlugins : "elementspath", // 에디터의 플러그인을 사용하지 않을 경우 이름 입력 ( 에디터 하단 상태바에 태그를 표시하는 플러그인) // 에디터 툴바를 설정함. toolbar : [ [ 'Source', '-' , 'NewPage', 'Preview' ], [ 'Cut', 'Copy', 'Paste', 'PasteText', '-', 'Undo', 'Redo' ], [ 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript'], [ 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock' ], '/', [ 'Styles', 'Format', 'Font', 'FontSize' ], [ 'TextColor', 'BGColor' ], [ 'Image', 'Flash', 'Table' , 'SpecialChar' , 'Link', 'Unlink'] ] }; var editor = [ ]; // id 엘리먼트를 입력할 때 중복되는 id 명이 없어야 한다. /* CKEDITOR.replace( "content" , ckeditor_config ).on('key', function () { // 에디터에 값이 입력될때마다 textarea 에 업데이트한다. 하지 않을 경우 textarea 의 value 값을 알 수 없다. this.updateElement(); }); */ // [2013.06.20] 위방법은 문제가 있는 듯 하여~ 아래와 같이 한다. editor[1] = CKEDITOR.replace( "content" , ckeditor_config ); // submit 이나 ajax 전송할때 같이 입력해준다. editor[1].updateElement(); </script>
on 이벤트를 사용한 이유는 textarea 에 자동으로 입력값이 업데이트 될 수 있게 하기 위해서 이다.
CKEditor3 에서는 이렇게 하지 않아도 됐었는 데... 없어진듯하다.
구찮게 모든 전송 이벤트에 업데이트를 하는 수밖에 ㅜ,ㅜ
네이버 스마트에디터도 자동으로 업데이트하는 기능은 없는 듯하다.
'개발노트 > JavaScript' 카테고리의 다른 글
네이버 차트 라이브러리 Nwagon : Naver Chart Library Nwagon (2) | 2014.03.14 |
---|---|
자바스크립트 배열 과 정렬 : JavaScript Array Sort , Queue (2) | 2010.03.09 |
XMLDOM 을 JSON 으로 파싱하여 활용하기, xml2json : 자바스크립트 (0) | 2009.07.16 |
XPath selectSingleNode : 자바스크립트 (0) | 2009.05.25 |