본문으로 바로가기

웹에디터(MS DHTML Editing Control) 소스 사용시 에러

category 기타 정보 2011. 4. 15. 19:00


JSP로 게시판 개발중에 JSP용 스마트 에디터를 찾는데 그림 업로드 에디터는 거의 없다.

이래저래 뒤적 거리다 찾은게 바로 웹에디터(MS DHTML Editing Control)..
이건 인터넷에 뒤져보면 원 소스와 누군가 사용하기 쉽게 변형 시킨 수정된 소스를 구할수 있다.
그리고 이건 MS 사에서 만든거라 그런가 Activex 형태로 개발된 소스 같다..
 
여튼 나도 이걸로 내가 개발중인 소스에 맞게끔 수정해서  사용했드니 첨엔 잘되었다...

문제는 실제 서버에 소스를 올려 확인해보니.. 어라! 에러 발생하네? 
이틀전까지도 잘되던게 왜???

에디터 모듈의 각종 기능들을 클릭 했을때마다 스크립트 에러가 발생했다..

에러난 부분은 바로 요기

  if (element.TBUSERONCLICK) {
   
     eval(element.TBUSERONCLICK + "anonymous()");
    
  }


그리하여 이것저것 여기저기 뒤져본 결과... ie 8 에서는 안된다??
그렇다.. 저 소스가 워낙 오래된 거라 ie6 에선 문제가 전혀 없었는데
내가 그사이 ie8로 업데이트 했더니 에러가 났다..
7버전 부터 안된다고 하든데..

해서 저 부분을 
 

  if (element.TBUSERONCLICK) {
   
       // 익스 8 이후 버전
var functionname = '';
        var re = /function (.*?)\(\)/;
        if (re.test(element.TBUSERONCLICK)){
              functionname = RegExp.$1 + '();';
        }
 
        eval(element.TBUSERONCLICK + functionname);
    
  }


이렇게 수정하면 ie8에서는 문제 없이 돌아간다.. 

원인은  anonymous() 이 스크립트 함수 같은데..
조사를 해보려 했으나 시간도 없어 자료도 많지 않아서 일단 스킵하고 쓰도록 한다..



 11/5/19 추가 사항

 웹 에디터로 본문 작성하면 <HTML>~ 태그부터 </HTML> 태그 까지 전부 생성 됨.
 이런 잡 태그 변환 하는 방법.... 

/******************************************/
/*********** 기타 잡 태그 삭제 ************/
/******************************************/

// 방법 1 - 변환.......
//var tt = document.dhtml_editor.tbContentElement.DocumentHTML;
//tt = tt.replace("<HTML>","");
//tt = tt.replace("</HTML>","");
//tt = tt.replace("<TITLE>","");
//tt = tt.replace("</TITLE>","");
//tt = tt.replace("<HEAD>","");
//tt = tt.replace("</HEAD>","");
//tt = tt.replace("<BODY>","");
//tt = tt.replace("</BODY>","");
//tt = tt.replace('<META NAME="GENERATOR" Content="Microsoft DHTML Editing Control">','');
//alert(tt);


// 방법 2 - 삭제........
//var t1 = document.dhtml_editor.tbContentElement.DocumentHTML;
//var t11 = t1.substring(117,(t1.length-18));
//alert(t11);


// 방법 3 - 삭제 및 변환
//var t2 = document.dhtml_editor.tbContentElement.DocumentHTML;
//t22 = t2.substring(117,(t1.length-18));
//t22 = t22.split("<DIV>").join("");
//t22 = t22.split("</DIV>").join("<BR>");
//alert(t22);

 
  이상 셋중 하나 골라서 쓰면된다..

'기타 정보' 카테고리의 다른 글

MS SQL 인증모드 변경방법  (0) 2011.06.08
Tomcat 6.0 InvokerServlet 에러  (0) 2011.05.13
HTML5 ACID Test  (0) 2011.03.31
이클립스 디버깅 사용법  (0) 2011.03.24
구글 애드 센스  (0) 2011.03.24