ビルド中のサイトはパッケージとして直接ユーザーに送信されるため、XMLを「ファイル」プロトコル経由で読み込むためのInternet Explorer 8ソリューションを作成しようとしています。私がXMLHttpRequestを使ってこれを処理しようとして経験したことは、私がオンラインで読んだことをサポートしているようです。IE8のXMLHttpRequest実装はプロトコルを嫌うので、ActiveXObjectを使って読み込みを処理する必要があります。JavaScript:ActiveXObject MSXML2.XMLHTTPは、正常な読み込みでXMLを返していません...?
私は様々な人々の提案を実験し、最終的にファイルを取得するコードを持っています。これは、responseTextフィールドがファイルの内容で満たされているためです。しかし、XMLを保持するはずのresponseXML.xmlフィールド(またはそのテキスト表現、私が読んだドキュメントはどれも非常にはっきりしていません)は、常に空文字列です。 XMLを正しく読み込むようにActiveXObjectを設定するにはどうすればよいですか?
また、ロードされたXMLをどのようにロードしたら正常に読み込まれるのかを説明できる人もいますか?私はそのビットを説明する文書をまだ見つけていない。ここで
は私のJavaScriptのである:
function isIE() {
return navigator.userAgent.lastIndexOf('Trident') > 0;
}
// This block ensures that the XML request occurs in the same domain.
var path = document.location.href;
path = path.substr(0, path.lastIndexOf('/') + 1);
if (isIE() && location.protocol == 'file:') {
var xmlRequest = new ActiveXObject('MSXML2.XMLHTTP');
xmlRequest.open('GET', path + 'xml/shared.xml', false);
xmlRequest.onreadystatechange = useXML;
xmlRequest.send();
function useXML() {
if (xmlRequest && xmlRequest.readyState && xmlRequest.readyState == 4) {
alert(xmlRequest.responseText); // displays the file
alert(xmlRequest.responseXML.xml); // displays nothing
}
}
}
そして、ここでは私のXMLファイルです:
<?xml version="1.0" encoding="ISO-8859-1"?>
<shared>
<page_title>
Test Page Title
</page_title>
</shared>
私は、このファイルが何らかの形で不正な形式であったかどうかをチェックするためにW3SchoolsのXMLのバリデータを使用していました。そうではない。
覚えていない...確かに、responseXMLには「xml」プロパティがありますか? – kirilloid
IEは安全でないと判断されるため、XMLを提供しません。テキストを扱う前に私自身のXMLパーサーを作成しました。 (これ以上持っていない、尋ねないでください!) - xmlToObject JSライブラリが浮遊しています。 – mwilcox