2017-01-09 34 views
0

私はXMLを取り、それをCSSでスタイルするWebアプリケーションを持っています。 HTMLとしてXMLを表示するには、私のようないくつかのJavaScriptを持っている:Microsoft EdgeにXML.innerHTMLの代替手段はありますか?

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

これはChromeとFirefoxで素晴らしい作品が、マイクロソフトのエッジは、XMLのための未定義として.innerHTMLを扱います。私はそれがブラウザ間でうまく機能するはずの別の機能がありますか?なぜEdgeは他と比べてinnerHTMLを扱うのですか?

This stack overflow questionを読んだ後、私はHTMLで表示するXMLを取得するためにXmlSerializerを使用してみました:

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

serializeToStringは(親要素を含む)全体のXMLをシリアライズとして、私は、しかしこの方法が好きではありません、親ノードの子の代わりに。より多くのブラウザで動作するこの方法がありますか?

+0

DOMメソッドを使用して、XMLを登場させることができます。好きな要素が見つかったら、一時DIVを作成してinnerHTMLで書き込んだ後、innerHTMLを取得してからreportBodyに書き込むことができます。 note innerHTMLはJavaScriptを含むhtmlでうまく再生できませんが、 '.html(...)'メソッドなどを提供するjQueryのようなフレームワークがあります。 – Ultimater

+0

Heh、一度Microsoftの選択に同意します。また、XMLをスタイルするためにXSLTを使用することを検討しましたか?それは文字どおりのために作られたものです。もちろん、私があなたに近いソリューションを持っていれば言語を変更するつもりはないと思いますが、次回はそれを検討したいかもしれません。 – Aaron

+1

私は、https://jsfiddle.net/foowr6rx/で簡単なテストを行いました.Medilla/5.0(Windows NT 10.0; Win64; x64)AppleWebKit/537.36(GeckoのようなKHTML)Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393)は最新のWindows 10のinnerHTMLには未定義ではなく、assigmentとCSSスタイリングが動作します。あなたの質問を編集し、エッジでは動作しない最小限の完全なコードスニペットを表示することを検討してください。 –

答えて

0

ご使用のMicrosoft Edgeのバージョンが14以上であることを確認してください。XML.innerHTMLは、今すぐMicrosoft Edgeで動作します。

関連する問題