IE以外のブラウザでJavaScriptを使ってxml-fileを読み込む方法は?

javascript xml

私はIEで正常に動作する次のコードを持っています:

xml = new ActiveXObject( "MSXML2.DOMDocument"); xml.async = false xml.load( "docs.xml")

他のブラウザで(AJAXなしで)同じことをするには?

  0  1


ベストアンサー

実際には、HTMLおよびJavaScriptがローカルメディアから実行される場合は、AJAXを使用せずに_ file://にXMLHttpリクエストを実行することはできないため、_AjAx_は意味がありません。 そのような場合は、AJAX要求に使用される標準の方法以外の方法でXMLデータをロードする必要があります。

Geckoブラウザ(Mozilla Firefoxなど)では、次のような方法でそれを実行できます。

xml = document.implementation.createDocument("","",null);
xml.load("docs.xml", "text/xml");

document.implementation.createDocument`がSafari / Chrome / Webkitに実装されていないことは既知の問題です。そのため、iframeにコンテンツをロードしてiframeの contentDocument`オブジェクトにアクセスする必要があるかもしれません。

1


ええと… JavascriptではなくAJAXなしではそれができません。 あなたはすでにあなたが持っているコードでAJAXを使っています(とにかくマイクロソフトのバージョンのAJAX)。

クロスブラウザ版のコードと同等のものについては、AJAXの Mozillaチュートリアルを読むことをお勧めします。

0


Firefoxでは DOMParserを使用できます。

0


ajaxがなければ、すでにテキストが利用可能であると仮定しても意味がありません。 xml.load(…​)はまだドキュメントを取得するために非同期呼び出しを使用します。 クロスブラウザのXMLパーサーが必要な場合は、試してみます。

if(window.DOMParser){parser = new DOMParser(); xmlDoc = parser.parseFromString(text、 "text / xml"); } else // Internet Explorer {xmlDoc = new ActiveXObject( "Microsoft.XMLDOM");} xmlDoc.async = "false"; xmlDoc.loadXML(テキスト); }

0


ローカルファイルを扱うあなたのユースケースに応じて、あなたはそれを逆にすることを検討するかもしれません: “docs.xml”ファイル自体をロードし、それをHTMLとしてレンダリングするために処理命令を使ってXSLTスタイルシートを適用します。

http://www.w3schools.com/xsl/xsl_transformation.asp[XSLTを使用してXMLをXHTMLに変換する方法]

0


AJAXを使用するとき、あなたは難しいと思います。

あなたの場合、それはセキュリティに関するより多くのリスクを含んでいます、そしてそれは今日ウィンドウズのコンポーネントを呼ぶので開発者はこの技術を使いません、そしてIEは他のブラウザよりそれを好む。

それで、あなたはjqueryやプロトタイプ、mootoolのようなajaxに関するより多くの情報を調査するべきです、それらは非常に強力なajaxフレームワークであり、彼らはあなたの要求を簡単に適用することができます。

がんばろう!

0


タイトルとURLをコピーしました