私は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をシリアライズとして、私は、しかしこの方法が好きではありません、親ノードの子の代わりに。より多くのブラウザで動作するこの方法がありますか?
DOMメソッドを使用して、XMLを登場させることができます。好きな要素が見つかったら、一時DIVを作成してinnerHTMLで書き込んだ後、innerHTMLを取得してからreportBodyに書き込むことができます。 note innerHTMLはJavaScriptを含むhtmlでうまく再生できませんが、 '.html(...)'メソッドなどを提供するjQueryのようなフレームワークがあります。 – Ultimater
Heh、一度Microsoftの選択に同意します。また、XMLをスタイルするためにXSLTを使用することを検討しましたか?それは文字どおりのために作られたものです。もちろん、私があなたに近いソリューションを持っていれば言語を変更するつもりはないと思いますが、次回はそれを検討したいかもしれません。 – Aaron
私は、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スタイリングが動作します。あなたの質問を編集し、エッジでは動作しない最小限の完全なコードスニペットを表示することを検討してください。 –