IE 에서 TinyMCE 로 한글 쓸 때 버그 해결방법
Posted by 시리니12月 21
사람이 '환장한다' 는 건 대체 어떤 뜻일까요?
약 2시간 전의 제 모습을 보셨더라면
아마 그 '환장한다' 는 표현이 무슨 뜻인지 생생하게
보실 수 있으셨을 겁니다.

(GR시리즈에서 채용된 TinyMCE, 보시는 것은 3.1.x 버젼입니다.)
그러니까 사건의 발단은 이렇습니다.
Internet Explorer 브라우저에서 (또 너냐... 지겹다 정말) TinyMCE 에디터에
글을 쓰면, 유독 한글을 쓸 때만 글자가 써지지 않는 희한한 문제가 있습니다.
(GR 시리즈에서는 TinyMCE 를 사용하고 있기 때문에 현재 패치한 GR보드 이외에
나머지 것들도 우선 패치를 해야 겠군요.)
그럼 무조건 안써지느냐?
그게 아닙니다.
아예 안써진다면야 제가 이렇게 머리털을 쥐어 뜯고 난리를 치지도 않았습니다.
어떻게 하다보면 또 잘 써지거든요.
문제는 첫글자를 한글로 쓸 때입니다.
이 때 한 번 쳇바퀴가 돌기 시작하면 글자가 연속적으로 쓰여지지 않고
이전에 쓴 글자가 지워지면서 새 글자가 써지는 식으로
절대 글이 써지지는 않으나 지금 무슨 글자를 쓰는지는 볼 수 있는
속 뒤집어지는 증상이 나타나게 됩니다.
게다가 IE 를 제외하고 불여우 등의 브라우저에서는 또 아무 문제가 없어서
발견하는데도 시간이 좀 걸렸습니다. 처음에는 버그 리포트를 받고서
아무런 의식 없이 불여우로 테스트를 해 보니 어라? 제대로 되는 겁니다.
그래서 대체 뭐가 문제인걸까... 하고 보니 IE 에서 테스트를 하니까 딱!
그냥 걸린 거지요.
아무튼 2시간이 넘는 사투 끝에,
너무나도 허무한 (임시) 해결책을 찾았습니다.
정확한 원인이 과연 어느 쪽에 있는 것인지 잘 모르겠지만
해결책은 간단합니다.
TinyMCE 에디터로 변경할 textarea 태그 사이에, <p> 태그를 하나
넣어주시면 됩니다. 가령 이렇게요.
<textarea name="content" row="5" cols="20"><p></textarea>
물론 위의 textarea 는 TinyMCE 가 에디터 폼으로 변형할 겁니다.
그리고 그 변형을 하면서 자연스럽게 <p> 태그도 작성되어서
결론적으로 한글이 계속 한글자만 써지는 환장할만한 버그를 수정할 수 있습니다.
(이 허탈할 정도로 간단한 수정 방법을 찾는데 2시간이 걸렸습니다. 히밤바 시밤바...)
처음에는 TinyMCE 쪽의 버그려니 생각했었는데,
계속 테스트를 하면서 집요하게 추궁하다보니 IE 이 녀석의 자바스크립트
처리방식이 매우 멍청하다는 결론을 내릴 수 있었습니다.
뭔가 논리적인 것 이전에, 제 선입견일지도 모르겠지만
아무튼 하는 짓을 보면 딱 지 편한대로만 하는 것 같다는 생각이 듭니다.
(어서 IE 8 정식버젼을 공개하란말야 MS! 누구 환장하는 꼴 또 보고싶어?!)
아무튼 차후 동일한 일이 발생했을 때
잊지 않기 위해 블로그에 기록해 둡니다.
아...
이 것 때문에 정말 오늘은 더블오도 못보고 자는 군요... 님히럴...
추.
올해 마지막 GR시리즈 업데이트(?)인 GR Board v1.7.8 Plus Pack #3을
며칠 안으로 공개할 생각입니다. 자세한 뒷얘기는 공개 후에 포스트로
더 소개해 올리겠습니다. :)
그럼 이만!

약 2시간 전의 제 모습을 보셨더라면
아마 그 '환장한다' 는 표현이 무슨 뜻인지 생생하게
보실 수 있으셨을 겁니다.
(GR시리즈에서 채용된 TinyMCE, 보시는 것은 3.1.x 버젼입니다.)
그러니까 사건의 발단은 이렇습니다.
Internet Explorer 브라우저에서 (또 너냐... 지겹다 정말) TinyMCE 에디터에
글을 쓰면, 유독 한글을 쓸 때만 글자가 써지지 않는 희한한 문제가 있습니다.
(GR 시리즈에서는 TinyMCE 를 사용하고 있기 때문에 현재 패치한 GR보드 이외에
나머지 것들도 우선 패치를 해야 겠군요.)
그럼 무조건 안써지느냐?
그게 아닙니다.
아예 안써진다면야 제가 이렇게 머리털을 쥐어 뜯고 난리를 치지도 않았습니다.
어떻게 하다보면 또 잘 써지거든요.
문제는 첫글자를 한글로 쓸 때입니다.
이 때 한 번 쳇바퀴가 돌기 시작하면 글자가 연속적으로 쓰여지지 않고
이전에 쓴 글자가 지워지면서 새 글자가 써지는 식으로
절대 글이 써지지는 않으나 지금 무슨 글자를 쓰는지는 볼 수 있는
속 뒤집어지는 증상이 나타나게 됩니다.
게다가 IE 를 제외하고 불여우 등의 브라우저에서는 또 아무 문제가 없어서
발견하는데도 시간이 좀 걸렸습니다. 처음에는 버그 리포트를 받고서
아무런 의식 없이 불여우로 테스트를 해 보니 어라? 제대로 되는 겁니다.
그래서 대체 뭐가 문제인걸까... 하고 보니 IE 에서 테스트를 하니까 딱!
그냥 걸린 거지요.
아무튼 2시간이 넘는 사투 끝에,
너무나도 허무한 (임시) 해결책을 찾았습니다.
정확한 원인이 과연 어느 쪽에 있는 것인지 잘 모르겠지만
해결책은 간단합니다.
TinyMCE 에디터로 변경할 textarea 태그 사이에, <p> 태그를 하나
넣어주시면 됩니다. 가령 이렇게요.
<textarea name="content" row="5" cols="20"><p></textarea>
물론 위의 textarea 는 TinyMCE 가 에디터 폼으로 변형할 겁니다.
그리고 그 변형을 하면서 자연스럽게 <p> 태그도 작성되어서
결론적으로 한글이 계속 한글자만 써지는 환장할만한 버그를 수정할 수 있습니다.
(이 허탈할 정도로 간단한 수정 방법을 찾는데 2시간이 걸렸습니다. 히밤바 시밤바...)
추가. 해리님의 댓글을 확인해보세요!
아래 옵션을 TinyMCE 에 주게 되면 보다 깔끔한 해결이 가능합니다.
forced_root_block : false
처음에는 TinyMCE 쪽의 버그려니 생각했었는데,
계속 테스트를 하면서 집요하게 추궁하다보니 IE 이 녀석의 자바스크립트
처리방식이 매우 멍청하다는 결론을 내릴 수 있었습니다.
뭔가 논리적인 것 이전에, 제 선입견일지도 모르겠지만
아무튼 하는 짓을 보면 딱 지 편한대로만 하는 것 같다는 생각이 듭니다.
(어서 IE 8 정식버젼을 공개하란말야 MS! 누구 환장하는 꼴 또 보고싶어?!)
아무튼 차후 동일한 일이 발생했을 때
잊지 않기 위해 블로그에 기록해 둡니다.
아...
이 것 때문에 정말 오늘은 더블오도 못보고 자는 군요... 님히럴...
추.
올해 마지막 GR시리즈 업데이트(?)인 GR Board v1.7.8 Plus Pack #3을
며칠 안으로 공개할 생각입니다. 자세한 뒷얘기는 공개 후에 포스트로
더 소개해 올리겠습니다. :)
그럼 이만!
11 Responses
[아크몬드] DELETE REPLY*
[시리니] DELETE
[해리] DELETE REPLY*
옵션에 forced_root_block : false
넣어주심 됩니다.
[시리니] DELETE
[bitomis] DELETE REPLY*
[시리니] DELETE
[정종국] DELETE REPLY*
TinyMCE 의 홈페이지 예제에서도 지워지는 현상을 발결했습니다만...
혹 해결 방법을 아시면...흑흑...
[시리니] DELETE
[늘처음] DELETE REPLY*
아래 링크를 참고
http://www.phoboslab.org/log/2007/10/ie-textarea-100-width-bug
[왜이러지요] DELETE REPLY*
forced_root_block : false를 설정하면 blockquote 탈출할 방법이 없어지니까 근본 해결책은 아닌 것 같고..
오늘도 구글신님께 아뢰는 수 밖에 없겠습니다. ㅠㅠ
해결책을 발견하면 이곳에도 알리겠습니다.
[시리니] DELETE