2017-01-09 3 views
0

XML을 사용하고 CSS로 스타일을 지정하는 웹 앱이 있습니다. HTML과 XML을 표시하려면, 내가 좋아하는 몇 가지 자바 스크립트가 있습니다Microsoft Edge에서 XML.innerHTML 대신 사용할 수 있습니까?

document.getElementById("reportBody").innerHTML = myXml.innerHTML; 

이는 크롬과 파이어 폭스에서 잘 작동하지만, 마이크로 소프트 Edge는 XML에 대한 정의되지 않은 .innerHTML 취급합니다. 브라우저마다 더 잘 작동하는 다른 기능이 있습니까? 왜 Edge는 다른 것보다 innerHTML을 다르게 취급합니까?

This stack overflow question을 읽은 후 나는 HTML에 표시 할 XML 얻기 위해 XmlSerializer를 사용하여 시도 : serializeToString이 (부모 요소 포함) 전체 XML을 직렬화, 나는 그래도이 방법이 마음에 들지

var s = new XMLSerializer(); 
var myXmlString = s.serializeToString(myXml); 
document.getElementById("reportBody").innerHTML = myXmlString; 

을 , 부모 노드의 자식 대신. 더 많은 브라우저에서 작동하는 더 좋은 방법이 있습니까?

+0

DOM 메소드를 사용하여 XML을 직렬화하기 전에 관심있는 노드로 올라갈 수 있습니다. 원하는 요소를 찾으면 임시 DIV를 만들고 innerHTML을 사용하여 임시 DIV를 작성한 다음 reportBody에 쓰기 전에 innerHTML을 가져올 수 있습니다. note innerHTML은 JavaScript가 포함 된 HTML에서는 잘 작동하지 않지만'.html (...) '메서드 등을 제공하는 jQuery와 같은 프레임 워크가 있습니다. – Ultimater

+0

한 번만 Microsoft의 선택에 동의합니다. 또한 XML 스타일을 지정하기 위해 XSLT를 사용 해본 적이 있습니까? 문자 그대로 그것이 만들어 낸 것입니다. 물론 거의 효과가있는 솔루션을 가지고 있다면 언어를 변경할 생각은 없지만 다음에 고려해야 할 사항이 있습니다. – Aaron

+1

https://jsfiddle.net/foowr6rx/에서 빠른 테스트를 시도했으며 Edge (Mozilla/5.0 (Windows NT 10.0, Win64, x64))/AppleWebKit/537.36 (Gecko와 같은 KHTML) Chrome/51.0.2704.79 사파리/537.36 Edge/14.14393)는 최신 Windows 10 'innerHTML'에 정의되어 있지 않으며 assigment와 CSS 스타일이 작동합니다. 질문을 수정하고 Edge와 함께 작동하지 않는 최소한이지만 완전한 코드 스 니펫을 보여 주도록하십시오. –

답변

0

Microsoft Edge 버전이 14 이상인지 확인하십시오. XML.innerHTML이 Microsoft Edge에서 작동합니다.

관련 문제