2012-11-30 43 views
2
<!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> 

大家好,的XMLHTTPRequest读本地文件不工作在所有浏览器

我需要创建一个HTML5页面,它从文件中读取并显示HTML5网页上的内容。当我在Visual Studio上运行它时,这工作正常。

但是,当我将这些复制到其他文件夹并从那里运行它不适用于大多数浏览器。在IE 9,Firefox和Chrome上试用过。我需要把它写在CD上,以便在我插入CD时自动运行。请在上面找到代码。我知道很多人都问过同样的问题,但找不到解决方案。

+0

这里没有跨域问题。 html5页面必须读取本地xml文件并显示输出。这是一个非常简单的应用程序来读取XML和显示内容。但要写它到CD我已经复制bin文件夹,XML文件和HTML页到不同的文件夹,并试图从那里运行HTML页面。但不显示xml的内容。请请帮忙。 – user1855437

+0

更改了码位。现在它完美地处理Firefox。 IE浏览器不能正常工作,如果我以chrome.exe的身份运行chrome.exe - 允许文件从文件访问它的工作原理。我正在使用Windows 7,请在下面找到代码。应该有解决方案,以便它适用于所有浏览器?由于char限制,不能粘贴代码。 – user1855437

回答

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]); 
相关问题