1

こんにちは、私はコミュニティの初心者です。質問したいのですが。

クイズを読み込んで実行するためのテンプレート HTML5 を作成しようとしています。質問と回答を含むxmlファイルがあり、テンプレートにロードしようとしています。

私が使用するコードは次のとおりです。

xml ファイルをロードするには

// The Script that loads the XML File Locally only works in Firefox for now

function loadXMLDoc(XMLname) {

    var xmlDoc;

    if (window.XMLHttpRequest) {
        xmlDoc = new window.XMLHttpRequest();
        xmlDoc.open("GET", XMLname, false);
        xmlDoc.send("");
        return xmlDoc.responseXML;
    }

    // IE 5 and IE 6
    else if (ActiveXObject("Microsoft.XMLDOM")) {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.load(XMLname);
        return xmlDoc;
    }
    else {
        xmlhttp = new XMLHttpRequest();

        //Open the file using the GET routine
        xmlhttp.open("GET", XMLname, false);         

        //Send request
        xmlhttp.send(null); 

        //xmlDoc holds the document information now
        return xmlDoc.responseXML; 
    }

    alert("Error loading document!");
    return null;
}​

コンテンツを HTML5 テンプレートに渡すには

xmlDoc=loadXMLDoc("test"+file+".qxml");

私の問題は、xmlfile からのデータが取得されないことです。サーバー上またはその他のブラウザー上では、xmlDoc 変数は null として表示されます。

私は Javascript xmlhttprequest メソッドを初めて使用するので、何か方向性を教えてもらえますか。お時間をいただきありがとうございます。

ファイル拡張子は xml ではありません (.qxml です)。問題は、ファイル .qxml の拡張子です。これをバイパスして、 xml の代わりに私の拡張機能 qxml を使用する方法はありますか?

4

1 に答える 1

1

サーバーから返された MIME タイプをオーバーライドして、データが XML であることをブラウザに伝えてください。

// The Script that loads the XML File Locally only works in Firefox for now

function loadXMLDoc(XMLname) {

    var xmlDoc;

    if (window.XMLHttpRequest) {
        xmlDoc = new window.XMLHttpRequest();
        xmlDoc.open("GET", XMLname, false);
        xmlDoc.overrideMimeType('text/xml');
        xmlDoc.send("");
        return xmlDoc.responseXML;
    }

    // IE 5 and IE 6
    else if (ActiveXObject("Microsoft.XMLDOM")) {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.load(XMLname);
        return xmlDoc;
    }
    else {
        xmlhttp = new XMLHttpRequest();

        //Open the file using the GET routine
        xmlhttp.open("GET", XMLname, false);         

        xmlhttp.overrideMimeType('text/xml');

        //Send request
        xmlhttp.send(null); 

        //xmlDoc holds the document information now
        return xmlDoc.responseXML; 
    }

    alert("Error loading document!");
    return null;
}​
于 2012-11-08T10:22:27.330 に答える