티스토리 뷰

CKEditor가 들어간 입력 폼이 IE에서 내용을 읽어오지 못하고 얼어버린다는 문제의 해결 요청을 받고
분석에 들어갔으나 구글링으로도 수 시간동안 제대로된 해결책을 발견하지 못하였다가
아래 링크의 글을 접하고 

MS가 IE9부터 iframe을 못쓰게 하려는 수작같다는 글
http://www.phpschool.com/link/tipntech/73485

일단 소스의 헤더 부분에 공통으로 들어간 것들 제거 후
하나씩 붙여보면서 테스트를 해 보니

iframe 관련 크로스브라우징 이슈가 핵심이었다.

기존 헤더에 위 이슈 해결을 위해 아래와같이 선언했었는데...

document.domain = "xxxx.com";

위와같은 선언이 들어간 페이지를 IE 9 이상 버젼으로 열었을 때
iframe.contentWindow.document 와 같이
Javascript로 iframe 접근하려 하는 CKEditor 코드에서 접근 안된다는 오류가 발생하며
내용을 불러오지 못하는 프리징 현상이 발생하는것이었는데...


해결:

JS 브라우저 셀렉터(http://www.phpschool.com/link/tipntech/76660)를 통해
IE 9 이상인 브라우저에서는 document.domain 선언을 하지 않도록 하는 것!

if(!window.CSSBS_ie9m) document.domain = "xxx.com";

극뽀옥~~~

댓글