jQuery를 사용하여 Ajax를 통해 전체 HTML5 문서를 요청하고 있습니다. 나는 그것들을 파싱하고 요소들을 메인 페이지 DOM에, 이상적으로는 모바일을 포함한 모든 주요 브라우저로 전송할 수 있기를 원합니다. 내가 원하는대로 iframe을 만들고 싶지는 않습니다. 단지 DOCTYPE없이, 다소 놀랍게도,여러 HTML DOM - 데이터 파싱 및 전송
var contents = $(document.createElement('html'));
contents[0].innerHTML = data; // data : HTML document string
이 적절한 문서를 생성합니다 : 크롬 & 파이어 폭스와 나는 다음을 수행 할 수 있습니다. 그러나 IE9에서는 innerHTML을 사용하여 html
요소의 내용을 설정할 수 없습니다. 나는 운이없이, 다음을 수행하려고 :
- 는 그것을 열고 DOM을 만들기 쓸 닫습니다. 문제 :
doc.open
에서 IE9는Unspecified error.
이라는 예외를 throw합니다.var doc = document.implementation.createHTMLDocument(''); doc.open(); doc.write(data); doc.close();
ActiveX DOM을 만듭니다. 이번에는 결과가 더 좋지만 문서간에 요소를 복사/복사 할 때 IE9가 충돌합니다. 아니 IE8 지원 (adoptNode/importNode 지원) 때문에 나쁜.
var doc = new ActiveXObject('htmlfile'); doc.open(); doc.write(data); doc.close(); contents = $(doc.documentElement); document.adoptNode(contents);
나는에 대한 재귀 대신 내 문서간에 전송의, 요소를 다시 생각했다,하지만 그건 내가 전송하는 많은 노드를 가질 수 있음을 주어, 비용이 많이 드는 작업처럼 보인다. 내 마지막 ActiveX 예제가 IE8 이전 버전에서 작동 할 가능성이 높습니다 (구문 분석 용으로는 적어도).
이것에 대한 아이디어가 있습니까? 다시 말하지만, head
과 body
을 구문 분석 할 수 있어야 할뿐만 아니라이 새로운 요소를 내 메인 DOM에 추가 할 수 있어야합니다.
감사합니다.