Chrome读取XML一片空白,怎么办
下面一段代码,读取同目录中的WEB.XML,在IE与FF都正常,但Chrome显示一片空白,请问应该怎么修改
var orderDoc;
var browse="";
var items;
//加载 xml 文件的方法,对 ie 和 firefox 均做了处理。
if (window.ActiveXObject) //ie 下面的处理
? {
? orderDoc = new ActiveXObject('MSXML2.DOMDocument.3.0');
? orderDoc.async=false;
? orderDoc.load(fileRoute);
? items = orderDoc.selectNodes("/Order/Item")
? browse="ie";
? }else if (document.implementation && document.implementation.createDocument) //firfox 下面的处理
? {
? ?
? orderDoc=document.implementation.createDocument('', '', null);
? orderDoc.async=false;
? orderDoc.load(fileRoute);
? items = orderDoc.getElementsByTagName("Item");
? ?
? browse="ff";
? }
? else
? {
? alert( '未做与该浏览器的兼容!');
? }
//var orderDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
// orderDoc.async=false;
//async属性可规定XML文件的下载是否应当被同步处理。
//True意味着load()方法可在下载完成之前向调用程序返回控制权。
//False意味着在调用程序取回控制权之前下载必须被完成。
//asp程序只能用False
//orderDoc.load("order.xml");
function getNode(doc, xpath) {
varretval = "";
var value = doc.selectSingleNode(xpath);
if (value) retval = value.text;
return retval;
}
//根据编号获取数据,
function getDataByid(number)
{
if(browse=="ie") //ie 下面获得数据的方法
{
var pageid = orderDoc.selectSingleNode("/Order/Item["+number+"]/pageid");
var pagename = orderDoc.selectSingleNode("/Order/Item[" + number + "]/pagename");
var pagepic = orderDoc.selectSingleNode("/Order/Item[" + number + "]/pagepic");
var pagetime = orderDoc.selectSingleNode("/Order/Item[" + number + "]/pagetime");
var selectContent = "<li><a href=http://www.abc.cn/" + (pagetime.text) + " target=_blank><img src=" + (pagepic.text) + "></a><span><a href=yugou.asp?id=" + (pageid.text) + "&name=" + (pagetime.text) + " target=_blank>编号:" + (pageid.text) + "</a></span></li>"
return selectContent;
}else if(browse=="ff"){ //ff 下面获得数据的方法
var pageid = orderDoc.getElementsByTagName("pageid")[number].childNodes[0].nodeValue;
var pagename = orderDoc.getElementsByTagName("pagename")[number].childNodes[0].nodeValue;
var pagepic = orderDoc.getElementsByTagName("pagepic")[number].childNodes[0].nodeValue;
var pagetime = orderDoc.getElementsByTagName("pagetime")[number].childNodes[0].nodeValue;
var selectContent = "<li><a href=http://www.abc.cn/" + (pagetime) + " target=_blank><img src=" + (pagepic) + "></a><span><a href=yugou.asp?id=" + (pageid) + "&name=" + (pagetime) + " target=_blank>编号:" + (pageid) + "</a></span></li>"
return selectContent;
}
}
<!-- 分页显示 -->
var currentPage = 1;//当前页数
var count; //总页数
var perPage=9; //每页显示的数据量
//获得总页数
function getCount()
{
var n1 = items.length;
if(n1%perPage==0)
? count = parseInt(n1/perPage);
else
? count = parseInt(n1/perPage)+1;
}
//alert (count);
//上一页
function prevPage()
{
? if(currentPage ==1)
? currentPage=1;
? else currentPage--;
? getContent();
}
//下一页
function nextPage()
{
? if(currentPage==count)
? currentPage=count;
? else currentPage++;
? getContent();
}
//第一页
function firstPage()
{
currentPage = 1;
getContent();
}
//最后一页
function lastPage()
{
currentPage=count;
getContent();
}
//获得页面内容
function getContent()
{
? getCount();
? var content = "<div id='fanye'><img src='sd.gif' id='fytp'> <input style='width:60px;height:20px;border:1px solid #ccc;background-color:#FFF;line-height:16px;' type=button id = 'firstPage' value = '<< 首页' onClick='firstPage()'> "
? +"<input type=button style='width:60px;height:20px;border:1px solid #ccc;background-color:#FFF;line-height:16px;' id = 'prePage' value = '< 前一页' onClick='prevPage()'> "
? +"<input style='width:60px;height:20px;border:1px solid #ccc;background-color:#FFF;line-height:16px;' type=button id = 'nextPage' value = '下一页 >' onClick='nextPage()'> "
? +"<input style='width:60px;height:20px;border:1px solid #ccc;background-color:#FFF;line-height:16px;' type=button id = 'lastPage' value = '尾页 >>' onClick='lastPage()'> "
? +""+currentPage+"/"
? +""+count+"</div>";
var content1="";
var mn1;
var mn2;
var n2 = items.length;
if(n2>currentPage*perPage)
{
? mn1 = perPage;
}
else
{
? mn1 = n2-(currentPage-1)*perPage;
}
//alert (mn1);
for (mn=mn1;mn>0;mn--){?
if (mn1<perPage){mn2=(perPage+mn-mn1)}
else
{mn2=mn}
content1 = content1 + getDataByid(currentPage*perPage-mn2);
}
? document.getElementById("all").innerHTML= content1 + content;
}
[解决办法]
- JScript code
//Chrome浏览器不支持load方法加载XML文档。网上找了下,需要如下解决: function loadXMLDoc(xml_name) { var xmlDoc; try { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); // Support IE } catch(e) { try { // Support Firefox, Mozilla, Opera, etc xmlDoc = document.implementation.createDocument("", "", null) ;// 创建一个空的 XML 文档对象。 } catch(e) { alert(e.message); } } // 加载XML文档 try { xmlDoc.async = false; // 关闭异步加载 xmlDoc.load(xml_name); } catch(e) { // alert(e.message) 如果浏览器是Chrome,则会catch这个异常:Object # (a Document) has no method "load",所以,以下实现支持chrome加载XML文档(只是粗略的写下) var xhr = new XMLHttpRequest(); xhr.open("GET", xml_name, false); xhr.send(null); xmlDoc = xhr.responseXML.documentElement; } return xmlDoc; } //BTW,各浏览器加载XML字符串也不同。//IE使用 loadXML() 方法来解析 XML 字符串:xmlDoc.loadXML(xml_str); //FireFox等使用DOMParser 对象解析XML字符串:var parseXml = new DOMParser(); var doc = parseXml.parseFromString(xml_str,"text/xml"); //详见:http://www.jinlie.net/?p=302
[解决办法]
如果用chrome的话,建议你放在IIS或者其他站点里用http浏览,本地浏览是不行的。~~
然后在看看是不是代码问题