我有一个html文档,它创建一个包含数据的表,由xml存档提供。在adobe括号的实时预览中,我可以看到页面和数据。
但是,当我尝试在某些浏览器中打开时,如IE,Firefox或Chrome,页面显示,只是空白。
这里是html代码的一部分,下面是xml的代码。
这是html代码
<!DOCTYPE html>
<html>
<head>
<style>
table { border-collapse: collapse; font-family: Futura, Arial, sans-serif; border: 1px solid #777; }
caption { font-size: larger; margin: 1em auto; }
th, td { padding: .65em; }
th, thead { background: #000; color: #fff; border: 1px solid #000; }
tr:nth-child(odd) { background: #ccc; }
tr:hover { background: #aaa; }
td { border-right: 1px solid #777; }
</style>
</head>
<body>
<script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","prueba_new.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.write("<table><tr><th>CardN</th><th>CardC</th><th>CardE</th><th>CardNe</th></tr>");
var x=xmlDoc.getElementsByTagName("CCard");
for (i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("CardN")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("CardC")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("CardE")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("CardNe")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
document.write("</table>");
</script>
</body>
</html>
这是xml代码,当然是实际的xml文件,包含数百个条目。
<?xml version="1.0"?>
<numbers>
<CCard>
<CardNe>Volkervun</CardNe>
<CardN>10000034999</CardN>
<CardC>Red Team</CardC>
<CardE>Volker.vcd</CardE>
</CCard>
<CCard>
<CardNe>Lady Mars</CardNe>
<CardN>10009899899</CardN>
<CardC>Blue Team</CardC>
<CardE>LadyM.vcd</CardE>
</CCard>
</numbers>
我尝试了几件事,但都没有。 那个空白页的一些想法?
答案 0 :(得分:1)
如果只是通过双击计算机上的.html文件在浏览器中打开文件,则可以在file://
协议下打开它。由于浏览器跨源沙盒,XML文件的GET请求将失败: file://
下的每个页面都被视为一个单独的域,因此您的.html页面不允许阅读你的.xml文件。
它适用于Brackets,因为Live Preview会加载一个简单的本地Web服务器,因此您可以在浏览器中以http://
协议查看您的页面。要在没有Brackets的情况下复制效果,请运行其他本地Web服务器。
我个人最喜欢的简单网络服务器是serf - 如果你的计算机上安装了NodeJS,你可以在命令行输入npm install -g serf
来安装它。然后,只需在.html文件所在的任何文件夹中键入serf
即可启动服务器。