0

ここにある解決策を実装しましたが、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);
        }
    });
4

2 に答える 2

1

Firebugがインストールされている場合は、F12 を使用してページの HTML を表示したり、コンソールにアクセスしたりできます。

次に、alert を使用して $(data).contents を確認する代わりに、console.debug を次のように使用できます。

console.debug($(data).contents);

あなたの質問に対する答えを正確に知っているかどうかはわかりませんが、これで何が起こっているのかをよりよく理解できるはずです。

于 2012-11-12T16:40:09.147 に答える
0

コードは正常に動作します。私の XML には面白いものが含まれていたので、正しく解析できませんでしたが、エラーは発生しませんでした。それは今働いています。

于 2012-11-13T18:20:59.377 に答える