Js ajax 支持除了Chrome浏览器外的其它浏览器
下面的代码,在除了chrome外的浏览器中均能读出xml文档,当然分页那边没有处理。在chrome中,实在是读不到节点的值,本人水平有限,如果有人知道怎么在chrome中读xml文件,还希望能告之,在下不甚感谢!
Order.xml

<?xml version="1.0" ?>
<Order>
<Account>9900234</Account>
<Item id="1">
<SKU>1234</SKU>
<PricePer>5.95</PricePer>
<Quantity>100</Quantity>
<Subtotal>595.00</Subtotal>
<Description>Super Widget Clamp</Description>
</Item>
<Item id="2">
<SKU>6234</SKU>
<PricePer>22.00</PricePer>
<Quantity>10</Quantity>
<Subtotal>220.00</Subtotal>
<Description>Mighty Foobar Flange</Description>
</Item>
<Item id="3">
<SKU>9982</SKU>
<PricePer>2.50</PricePer>
<Quantity>1000</Quantity>
<Subtotal>2500.00</Subtotal>
<Description>Deluxe Doohickie</Description>
</Item>
<Item id="4">
<SKU>3256</SKU>
<PricePer>389.00</PricePer>
<Quantity>1</Quantity>
<Subtotal>389.00</Subtotal>
<Description>Muckalucket Bucket</Description>
</Item>
<Item id="5">
<SKU>3256</SKU>
<PricePer>389.00</PricePer>
<Quantity>1</Quantity>
<Subtotal>389.00</Subtotal>
<Description>Muckalucket Bucket</Description>
</Item>
<Item id="6">
<SKU>3256</SKU>
<PricePer>389.00</PricePer>
<Quantity>1</Quantity>
<Subtotal>389.00</Subtotal>
<Description>Muckalucket Bucket</Description>
</Item>
<NumberItems>1111</NumberItems>
<Total>3704.00</Total>
<OrderDate>07/07/2002</OrderDate>
<OrderNumber>8876</OrderNumber>
</Order>
<Order>
<Account>9900234</Account>
<Item id="1">
<SKU>1234</SKU>
<PricePer>5.95</PricePer>
<Quantity>100</Quantity>
<Subtotal>595.00</Subtotal>
<Description>Super Widget Clamp</Description>
</Item>
<Item id="2">
<SKU>6234</SKU>
<PricePer>22.00</PricePer>
<Quantity>10</Quantity>
<Subtotal>220.00</Subtotal>
<Description>Mighty Foobar Flange</Description>
</Item>
<Item id="3">
<SKU>9982</SKU>
<PricePer>2.50</PricePer>
<Quantity>1000</Quantity>
<Subtotal>2500.00</Subtotal>
<Description>Deluxe Doohickie</Description>
</Item>
<Item id="4">
<SKU>3256</SKU>
<PricePer>389.00</PricePer>
<Quantity>1</Quantity>
<Subtotal>389.00</Subtotal>
<Description>Muckalucket Bucket</Description>
</Item>
<Item id="5">
<SKU>3256</SKU>
<PricePer>389.00</PricePer>
<Quantity>1</Quantity>
<Subtotal>389.00</Subtotal>
<Description>Muckalucket Bucket</Description>
</Item>
<Item id="6">
<SKU>3256</SKU>
<PricePer>389.00</PricePer>
<Quantity>1</Quantity>
<Subtotal>389.00</Subtotal>
<Description>Muckalucket Bucket</Description>
</Item>
<NumberItems>1111</NumberItems>
<Total>3704.00</Total>
<OrderDate>07/07/2002</OrderDate>
<OrderNumber>8876</OrderNumber>
</Order>
js 代码

<script language="javascript" type="text/javascript">
<!--
var orderDoc;
var browse="";
var items;
//加载 xml 文件的方法,对 ie 和 firefox 均做了处理。
var fileRoute="order.xml"
if (window.ActiveXObject) //ie 下面的处理
{
orderDoc = new ActiveXObject('Microsoft.XMLDOM');
orderDoc.async=false;
orderDoc.preserveWhiteSpace = true;
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=="ff") //ff 下面获得数据的方法
{
var SKU = orderDoc.getElementsByTagName("SKU")[number].childNodes[0].nodeValue;
var PricePer = orderDoc.getElementsByTagName("PricePer")[number].childNodes[0].nodeValue;
var Quantity = orderDoc.getElementsByTagName("Quantity")[number].childNodes[0].nodeValue;
var Total = orderDoc.getElementsByTagName("Subtotal")[number].childNodes[0].nodeValue;
var Description = orderDoc.getElementsByTagName("Description")[number].childNodes[0].nodeValue;
var selectContent = "SKU:" +(SKU)+"<br>"
+"PricePer:" +(PricePer)+"<br>"
+"Quantity:" +(Quantity)+"<br>"
+"Total:" +(Total)+"<br>"
+"Description:" +(Description)+"<p></p>";
return selectContent;
}else{ //IE 下面获得数据的方法
var SKU = orderDoc.selectSingleNode("/Order/Item["+number+"]/SKU");
var PricePer = orderDoc.selectSingleNode("/Order/Item[" + number + "]/PricePer");
var Quantity = orderDoc.selectSingleNode("/Order/Item[" + number + "]/Quantity");
var Total = orderDoc.selectSingleNode("/Order/Item[" + number + "]/Subtotal");
var Description = orderDoc.selectSingleNode("/Order/Item[" + number + "]/Description");
var selectContent = "SKU:" +(SKU.text)+"<br>"
+"PricePer:" +(PricePer.text)+"<br>"
+"Quantity:" +(Quantity.text)+"<br>"
+"Total:" +(Total.text)+"<br>"
+"Description:" +(Description.text)+"<p></p>";
return selectContent;
}
}
<!-- 分页显示 -->
var currentPage = 1;//当前页数
var count; //总页数
var perPage=2; //每页显示的数据量
//获得总页数
function getCount()
{
var n1 = items.length;
if(n1%2==0)
count = n1/2;
else
count = n1/2+1;
}
//上一页
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 = "<input type=button id = 'firstPage' value = '第一页' onClick='firstPage()'> "
+"<input type=button id = 'prePage' value = '上一页' onClick='prevPage()'> "
+"<input type=button id = 'nextPage' value = '下一页' onClick='nextPage()'> "
+"<input type=button id = 'lastPage' value = '最后一页' onClick='lastPage()'> "
+"第<span style='color:#ff2300;'>"+currentPage+"</span>页 "
+"共<span style='color:#ff2300;'>"+count+"</span>页";
document.getElementById("all").innerHTML= getDataByid(currentPage*perPage-2)+getDataByid(currentPage*perPage-1)+content;
}
// -->
</script>
<!--
var orderDoc;
var browse="";
var items;
//加载 xml 文件的方法,对 ie 和 firefox 均做了处理。
var fileRoute="order.xml"
if (window.ActiveXObject) //ie 下面的处理
{
orderDoc = new ActiveXObject('Microsoft.XMLDOM');
orderDoc.async=false;
orderDoc.preserveWhiteSpace = true;
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=="ff") //ff 下面获得数据的方法
{
var SKU = orderDoc.getElementsByTagName("SKU")[number].childNodes[0].nodeValue;
var PricePer = orderDoc.getElementsByTagName("PricePer")[number].childNodes[0].nodeValue;
var Quantity = orderDoc.getElementsByTagName("Quantity")[number].childNodes[0].nodeValue;
var Total = orderDoc.getElementsByTagName("Subtotal")[number].childNodes[0].nodeValue;
var Description = orderDoc.getElementsByTagName("Description")[number].childNodes[0].nodeValue;
var selectContent = "SKU:" +(SKU)+"<br>"
+"PricePer:" +(PricePer)+"<br>"
+"Quantity:" +(Quantity)+"<br>"
+"Total:" +(Total)+"<br>"
+"Description:" +(Description)+"<p></p>";
return selectContent;
}else{ //IE 下面获得数据的方法
var SKU = orderDoc.selectSingleNode("/Order/Item["+number+"]/SKU");
var PricePer = orderDoc.selectSingleNode("/Order/Item[" + number + "]/PricePer");
var Quantity = orderDoc.selectSingleNode("/Order/Item[" + number + "]/Quantity");
var Total = orderDoc.selectSingleNode("/Order/Item[" + number + "]/Subtotal");
var Description = orderDoc.selectSingleNode("/Order/Item[" + number + "]/Description");
var selectContent = "SKU:" +(SKU.text)+"<br>"
+"PricePer:" +(PricePer.text)+"<br>"
+"Quantity:" +(Quantity.text)+"<br>"
+"Total:" +(Total.text)+"<br>"
+"Description:" +(Description.text)+"<p></p>";
return selectContent;
}
}
<!-- 分页显示 -->
var currentPage = 1;//当前页数
var count; //总页数
var perPage=2; //每页显示的数据量
//获得总页数
function getCount()
{
var n1 = items.length;
if(n1%2==0)
count = n1/2;
else
count = n1/2+1;
}
//上一页
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 = "<input type=button id = 'firstPage' value = '第一页' onClick='firstPage()'> "
+"<input type=button id = 'prePage' value = '上一页' onClick='prevPage()'> "
+"<input type=button id = 'nextPage' value = '下一页' onClick='nextPage()'> "
+"<input type=button id = 'lastPage' value = '最后一页' onClick='lastPage()'> "
+"第<span style='color:#ff2300;'>"+currentPage+"</span>页 "
+"共<span style='color:#ff2300;'>"+count+"</span>页";
document.getElementById("all").innerHTML= getDataByid(currentPage*perPage-2)+getDataByid(currentPage*perPage-1)+content;
}
// -->
</script>
html代码
<h2>XML Order Database</h2>
<div id='all'>
<script language="javascript">
getContent();
</script>
<div>
<div id='all'>
<script language="javascript">
getContent();
</script>
<div>