XMLHTTPRequest读取本地文件不适用于所有浏览器

时间:2012-11-30 05:44:10

标签: xmlhttprequest

<!DOCTYPE html> <html> <head> <script>
    function loadXMLDoc(url) {
        var xmlhttp;
        var txt, x, xx, i;
        if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }
        else {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                txt = "<table border='1'><tr><th>Title</th><th>Artist</th></tr>";
                x = xmlhttp.responseXML.documentElement.getElementsByTagName("curriculum_item");
                for (i = 0; i < x.length; i++) {
                    txt = txt + "<tr>";
                    xx = x[i].getElementsByTagName("title");
                    {
                        try {
                            txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                        }
                        catch (er) {
                            txt = txt + "<td> </td>";
                        }
                    }
                    xx = x[i].getElementsByTagName("abstract");
                    {
                        try {
                            txt = txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
                        }
                        catch (er) {
                            txt = txt + "<td> </td>";
                        }
                    }
                    txt = txt + "</tr>";
                }
                txt = txt + "</table>";
                document.getElementById('txtCDInfo').innerHTML = txt;
            }
        }
        xmlhttp.open("GET", url, true);
        xmlhttp.send();
    } </script> </head> <body>

<div id="txtCDInfo"> <button onclick="loadXMLDoc('curriculum_materials.xml')">Get CD info</button> </div>

</body> </html>

大家好,

我需要创建一个html5页面,从文件中读取并在html5页面上显示内容。当我在visual studio上运行它时工作正常。

但是当我将这些文件复制到其他文件夹并从那里运行时,它在大多数浏览器上都不起作用。在IE 9,firefox和chrome上尝试过。我需要在CD上写这个,以便在插入cd时自动运行。请找到上面的代码。我知道很多人都提出了同样的问题但却找不到解决办法。

1 个答案:

答案 0 :(得分:0)

这是IE的答案。我在Win 7 Pro,IE 11上有它。我开始你在哪里 - 同样的问题,并为IE工作。

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET", "myXMLfile.xml", false);
xmlhttp.send();
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlhttp.responseText, 'text/xml');

// Now this works
alert(xmlDoc.getElementsByTagName("Item")[0]);