Chrome读取XML一片空白,怎么办

totopop 2011-10-21 10:30:38
下面一段代码,读取同目录中的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;
}
...全文
1633 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ziyouren521125 的回复:]

如果用chrome的话,建议你放在IIS或者其他站点里用http浏览,本地浏览是不行的。~~

然后在看看是不是代码问题
[/Quote]

up
ziyouren521125 2011-10-22
  • 打赏
  • 举报
回复
如果用chrome的话,建议你放在IIS或者其他站点里用http浏览,本地浏览是不行的。~~

然后在看看是不是代码问题
叶子 2011-10-21
  • 打赏
  • 举报
回复
//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

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧