웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
xpresseditor 사용시 첨부파일 본문삽입 중복되는 문제 수정.
2012.01.31 22:42
FF9와 IE에서 확인되는 현상입니다. 코드상 문제가 있었던 것은 아닙니다.
버그라고 할 수도 있고.. 문법이 어긋난 것은 아니니 버그가 아니라고 할 수도 있는데. 재현 과정은 이렇습니다.
- ./index.php?module=admin&act=dispEditorAdminIndex 에서 에디터 옵션 항목을 기본값 그대로 '저장' 클릭.
- xpresseditor가 적용된 게시판에서 새글 작성. 브라우저는 IE 또는 FF9이상을 이용.
- 첨부파일을 첨부하고, 본문삽입 클릭
- 첨부파일이 본문에 중복되어 삽입됨.
이는 pasteHTML 이라는 함수가 중복해서 실행되면서 일어나는 현상이라는 것을 발견했으나.. 코드를 눈 씻고 찾아봐도 그럴만한 구석이 없었습니다.
그래서 재현과정에 뭔가 달라지는 것이 있는가 찾아보니, 에디터 옵션을 설정하지 않았을 때는 기본 폰트 크기가 지정되지 않지만, 설정하면, 기본 폰트 크기가 지정된다는 것이었습니다.
폰트 크기 지정하는 소스에 문제가 있는가 싶어 보았더니.. xpresseditor.js (또는 xpresseditor.min.js) 파일안에 해당 내용이 있었습니다. 그렇지만.. doc.body.style.fontSize = content_font_size; 라고 되어있는 부분에 아무 하자가 없었습니다..
그래도 의심이 가서 해당 부분을 주석처리하고 실행해본 결과...
버그가 사라졌습니다.ㅠ
이 부분을 실행하는데 있어서 브라우저 버그인지 뭔지 모르지만.. 문제가 생기는 것 같았습니다. 그래서 이 부분을 수정하였습니다.
if(content_font && !doc.body.style.fontFamily) { doc.body.style.fontFamily = content_font; } if(content_font_size && !doc.body.style.fontSize) { doc.body.style.fontSize = content_font_size; }
라고 되어있는 부분을
if(content_font && !jQuery(doc.body).hasClass("xe_editor_fontfamily")) { jQuery(doc.getElementsByTagName("head")).append('<style type="text/css"> .xe_editor_fontfamily{font-family:'+content_font+';}</style>'); jQuery(doc.body).addClass("xe_editor_fontfamily"); } if(content_font_size && !jQuery(doc.body).hasClass("xe_editor_fontsize")) { jQuery(doc.getElementsByTagName("head")).append('<style type="text/css"> .xe_editor_fontsize{font-size:'+content_font_size+';}</style>'); jQuery(doc.body).addClass("xe_editor_fontsize"); }
로 변경후 저장하였습니다.. 그랬더니 잘 되네요.. 소스 보시면 아시겠지만.. 같은 내용, 다른 표현인데.. 아래 내용이 훨씬 더 지저분한 표현인데.. 아래 식은 문제 없이 잘 돌아갔습니다..
여튼.. 그래서 다시 스킨을 수정하였고.
그 스킨은 xpresseditor.zip 를 이용하시면 됩니다.