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>

 

 

  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>页&nbsp"
     
+"共<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>

 

 

posted @ 2010-06-08 14:31  海底的鱼  阅读(1078)  评论(0)    收藏  举报