오류 해결] IE에서 WrongDocumentError 발생 원인 및 해결 방법 :: 소림사의 홍반장!

새로운 요소를 동적으로 추가하려던 중 WrongDocumentError  이런 오류를 만났는데....


크롬에선 잘 되는데 익스플로러 11버전에서는 안되더군요.


일단 여기 저기 다 찾아다녀 본 결과 IE 에서만 발생하는 듯 합니다.



발생 원인.


Element 를 생성한 Document 와 insert 하는 Element 가 존재하는 Document 가 서로 달라서 발생하는 것.


고로 저처럼 IFRAME 안의 내용을 주무르려고 하다보면 충분히 발생할 수 있겠네요. ( range.insertNode 등의 명령 실행 등 )




간단한 해결 방법.


    - jquery 를 이용하여 그냥 element 를 생성하면 기본 window 의 document 에서 생성되므로 

       자바스크립트를 사용하여 생성되는 document 변경.


<기존 소스>


var $span = $('<span>'+selectedText+'</span>');

$eBody[0].ownerDocument.defaultView.getSelection().getRangeAt(0).insertNode($span[0]);




<해결 소스>


var span = cWindow.document.createElement('span');

var $span = $(span).html(selectedText);

$eBody[0].ownerDocument.defaultView.getSelection().getRangeAt(0).insertNode($span[0]);




전체 소스





다른 카테고리의 글 목록

Dev. 웹 카테고리의 포스트를 톺아봅니다