관리 메뉴

웹개발자의 기지개

[ASP] 네이버에디터로 글 내용 수정시 소스태그로 에러날때 - 따옴표처리 본문

ASP

[ASP] 네이버에디터로 글 내용 수정시 소스태그로 에러날때 - 따옴표처리

http://portfolio.wonpaper.net 2021. 4. 13. 12:30

ASP 백엔드 작업시에 에디터를 이용하여 글내용 db에 넣고 글수정에서 에디터위에 불러오는 과정에서

에러가 났다.

 

위의 이미지처럼 내용 부분에 에디터가 나오지 않는 에러가 발생했다.

일단 소스보기 해보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var oEditors = [];
var sLang = "ko_KR";    // 언어 (ko_KR/ en_US/ ja_JP/ zh_CN/ zh_TW), default = ko_KR
// 추가 글꼴 목록
//var aAdditionalFontSet = [["MS UI Gothic", "MS UI Gothic"], ["Comic Sans MS", "Comic Sans MS"],["TEST","TEST"]];
nhn.husky.EZCreator.createInIFrame({
    oAppRef: oEditors,
    elPlaceHolder: "board_content",
    sSkinURI: "/smarteditor2/SmartEditor2Skin.html",    
    htParams : {
        bUseToolbar : true,                // 툴바 사용 여부 (true:사용/ false:사용하지 않음)
        bUseVerticalResizer : true,        // 입력창 크기 조절바 사용 여부 (true:사용/ false:사용하지 않음)
        bUseModeChanger : true,            // 모드 탭(Editor | HTML | TEXT) 사용 여부 (true:사용/ false:사용하지 않음)
        //bSkipXssFilter : true,        // client-side xss filter 무시 여부 (true:사용하지 않음 / 그외:사용)
        //aAdditionalFontList : aAdditionalFontSet,        // 추가 글꼴 목록
        fOnBeforeUnload : function(){
            //alert("완료!");
        },
        I18N_LOCALE : sLang
    }, //boolean
    fOnAppLoad : function(){
        //예제 코드
        oEditors.getById["board_content"].exec("PASTE_HTML", ["<a href="http://naver.me/xVKrHw0t" target="_blank"><img src="/popup/img/20201106.jpg" alt="" /></a><br><p class="mB1em"><a href="http://naver.me/xVKrHw0t" class="popBtn" target="_blank">온라인 사전예약</a></p>"]);
    },
    fCreator: "createSEditor2"
});
 
cs

위의 소스를 보면 네이버 에디터 글수정시 불러오는 부분인데, 22라인이 그문제의 부분이다.

쌍따옴표가 연이어 나오고 있어서 Javascript 에러 처리가 나오고 있다.

 

이렇게 쌍따옴표 처리를 ASP 상으로 처리해 보도록 하자.

 

글수정시 해당 ASP 글내용 처리 부분

 

1
2
    board_content   = Replace(board_content,Chr(13)&Chr(10),"<br>")
    board_content    = Replace(board_content,Chr(34),"\" & Chr(34))
cs

위의 2번라인이 그부분이다. Chr(34) 가 쌍따옴표를 뜻한다. 

Javascript 로 불러올때 \쌍따옴표로 처리해주지.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var oEditors = [];
var sLang = "ko_KR";    // 언어 (ko_KR/ en_US/ ja_JP/ zh_CN/ zh_TW), default = ko_KR
// 추가 글꼴 목록
//var aAdditionalFontSet = [["MS UI Gothic", "MS UI Gothic"], ["Comic Sans MS", "Comic Sans MS"],["TEST","TEST"]];
nhn.husky.EZCreator.createInIFrame({
    oAppRef: oEditors,
    elPlaceHolder: "board_content",
    sSkinURI: "/smarteditor2/SmartEditor2Skin.html",    
    htParams : {
        bUseToolbar : true,                // 툴바 사용 여부 (true:사용/ false:사용하지 않음)
        bUseVerticalResizer : true,        // 입력창 크기 조절바 사용 여부 (true:사용/ false:사용하지 않음)
        bUseModeChanger : true,            // 모드 탭(Editor | HTML | TEXT) 사용 여부 (true:사용/ false:사용하지 않음)
        //bSkipXssFilter : true,        // client-side xss filter 무시 여부 (true:사용하지 않음 / 그외:사용)
        //aAdditionalFontList : aAdditionalFontSet,        // 추가 글꼴 목록
        fOnBeforeUnload : function(){
            //alert("완료!");
        },
        I18N_LOCALE : sLang
    }, //boolean
    fOnAppLoad : function(){
        //예제 코드
        oEditors.getById["board_content"].exec("PASTE_HTML", ["<a href=\"http://naver.me/xVKrHw0t\" target=\"_blank\"><img src=\"/popup/img/20201106.jpg\" alt=\"\" /></a><br><p class=\"mB1em\"><a href=\"http://naver.me/xVKrHw0t\" class=\"popBtn\" target=\"_blank\">온라인 사전예약</a></p>"]);
    },
    fCreator: "createSEditor2"
});
 
cs

 

 

 

 

 

 

 

 

 

 

Comments