ここにある解決策を実装しましたが、Firefox では機能しません。
IE は XML ドキュメントを読み込んで読み込みます。データのタイプが「文字列」の場合、data 変数は XML を保持しますが、xml 変数に読み込むと以下の同じ関数が返されます。XML ファイルは、HTML ファイルと同じフォルダーに格納されるフラット ファイルです。ファイルは"file:///D:/..."
、ウェブサーバーからではなく、から実行されています。
Firefoxのバージョンは16.0.2で、 jquery 1.7.1 と 1.8.2を試しました。dataType
比較を行ったところ、データは ではなくXML
、 とだけ表示されていますObject
。
アラートを実行$(data).contents
して取得しました:
function (c, d) {
var e = p.map(this, b, c);
return bc.test(a) || (d = c), d && typeof d == "string" && (e = p.filter(d, e)), e = this.length > 1 && !bg[a] ? p.unique(e) : e, this.length > 1 && bd.test(a) && (e = e.reverse()), this.pushStack(e, a, k.call(arguments).join(","));
}
falseに設定しようとしsecurity.fileuri.strict_origin_policy
ましたが、効果はありません。
コードは次のとおりです。
$.ajax({
url: "COBIE.xml",
dataType: ($.browser.msie) ? "text" : "xml",
success: function (data) {
if (typeof data == "string") {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
// Returned data available in object "xml"
setMessage("XML date has been loaded");
} else if (typeof data == "xml") {
xml = data;
alert($(xml).contents);
// Returned data available in object "xml"
setMessage("XML date has been loaded");
} else {
alert($(data).contents);
setMessage("I have no idea what data you're trying to load");
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
setMessage(errorThrown);
}
});