반응형

<textarea name="TITLE" class="TITLE">내 제목, 입니다.</textarea>
<script type="text/javascript">
    CKEDITOR.replace("TITLE", { height: 100 });
</script>

<textarea name="TITLE" class="TITLE">내 제목 입니다.2</textarea>
<script type="text/javascript">
    CKEDITOR.replace("TITLE", { height: 100 });
</script>

<textarea name="TITLE" class="TITLE">내 제목 입니다.3</textarea>
<script type="text/javascript">
    CKEDITOR.replace("TITLE", { height: 100 });
</script>

대충 이런식으로 TEXTAREA에 CKEDITOR를 적용해놓고 저장을 하는데 가끔 CKEDITOR를 배열로 배치하여 사용할 때 배열 구조상 문장에 ", " 이런 문자열이 들어가면 문제가 생길 수 있다.

뒤 처리단에서 동일안 컨트롤 이름으로 SPLIT하여 처리하게 될 경우 ", "로 인해 의도치 않게 데이터가 짤려버리는 상황처럼 말이다.

따라서 팁으로 보내기전에 해당 문자열은 다른 문자열로 치환시킨 후 처리하는 뒷단 페이지에서 다시 원상복구 시켜주면 해결되는데 이게 그냥 하면 안되고 아래처럼 getData로 값을 받아서 setData로 치환된 데이터를 넣어줘야 한다.

            $(".TITLE").each(function() {
                var editor = CKEDITOR.instances['TITLE' + nCkeditorNum];
                strData = editor.getData();
                editor.setData(strData.replace(//g, "!^"));
                nCkeditorNum++;
            });

처리하는 뒷단에선 "!^"를 ", "로 다시 원상복구 하여 저장시키든 말든 하면 끝남
굳이 자바스크립트 정규표현식까진 설명 안하겠음.

반응형
Posted by Hippalus

댓글을 달아 주세요