隐式ajax框架远程调用xml文件(存在跨域问题)

我顶 字号:

Array.prototype.isUsed = false;//数组已经是否用过标志
var xmlArray = new Array();

//根据浏览嚣创建DOM对象
function init()
{
  var Browser = new Object();
  Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined');
  Browser.isIE = window.ActiveXObject?true:false;
  Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);
  Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera")!=-1); 
  if(Browser.isIE)
  return new LocalXML();
  else firefoxloadxml();
}

//IE浏览器的处理---加载得到XML文件
function LocalXML()

  var XMLDoc= new ActiveXObject("Microsoft.XMLDOM");
  //加载XML文件
  this.loadXML = function(xmlfilename)
  {    
    alert(xmlfilename);
    XMLDoc.onreadystatechange=eval(this.onchange);
 XMLDoc.async=false;
 try{
    XMLDoc.load(xmlfilename);
    }
    catch(e)
    {
    alert(e)
    }
  }
  //返回指定节点的值
  this.getNode=function(sXpath){
    var iReval="";
    var ivalue=XMLDoc.selectSingleNode(sXpath);
    if(ivalue)  iReval=ivalue.text;
    return iReval;
  }
  //返回指定的节点集
  this.selectNodes=function(sXpath){
    return XMLDoc.selectNodes(sXpath);
  }
  //返回加载XML文件的状态
  this.readyState=function ()
  {
    return XMLDoc.readyState;
  } 

  //当文件更改时,响应的方法
  this.onchange=function()
  {
    if(XMLDoc.readyState==4)
    {   
     xmlParse();
    }   
  }
  //是否同步
  this.async=function (bType)
  {
   return XMLDoc.async=bType;
   } 

}

//删除左右两端的空格
function trim(str){
  return str.replace(/(^\s*)|(\s*$)/g, "");
}


//解析xml文件
function xmlParse()

    
 if(xmlArray.isUsed) xmlArray = new Array();
 var element = xmlObj.selectNodes("/root/content/item");  
 for(var i=0; i<element.length; i++)
  {
    
  var obj = new Object(); 
  obj.id=element[i].getAttribute("id");  
  for(var j=0; j<element[i].childNodes.length; j++)
  {   
    var nodeName =  element[i].childNodes[j].nodeName;
    if(nodeName == "name") obj.name = trim(element[i].childNodes[j].text);
    if(nodeName == "microimage") obj.microimage = trim(element[i].childNodes[j].text);
    if(nodeName == "url") obj.url = trim(element[i].childNodes[j].text);
    if(nodeName == "browse") obj.browse = trim(element[i].childNodes[j].text);   
    if(nodeName == "promulgator") obj.promulgator = trim(element[i].childNodes[j].text);
    if(nodeName == "discription") obj.discription = trim(element[i].childNodes[j].text); 
    if(nodeName == "time") obj.time = trim(element[i].childNodes[j].text);
    if(nodeName == "data") obj.data = trim(element[i].childNodes[j].text);
  }
  xmlArray.push(obj);
 } 
 xmlArray.isUsed = true;  
 setPlayMessageInfo();
}

 

//firefox浏览器的处理---加载得到XML文件
function firefoxloadxml(){
 var firefoxxmlDoc = document.implementation.createDocument("", "doc", null);
 firefoxxmlDoc.load(path);
    firefoxxmlDoc.onload = function () {
      if(xmlArray.isUsed) xmlArray = new Array();
      var item_length = firefoxxmlDoc.getElementsByTagName("item").length;
   var obj_item=firefoxxmlDoc.getElementsByTagName("item");
   for(var t=0;t<item_length;t++)
   {
     obj.id=element[i].getAttribute("id"); 
    var obj = new Object();
    obj.title = obj_item[t].getElementsByTagName("title")[0].firstChild.nodeValue;
    obj.url = obj_item[t].getElementsByTagName("vod_url")[0].firstChild.nodeValue;
    obj.url = obj_item[t].getElementsByTagName("begintime")[0].firstChild.nodeValue;
    obj.url = obj_item[t].getElementsByTagName("endtime")[0].firstChild.nodeValue;
    xmlArray.push(obj);
   }
   xmlArray.isUsed = true;
    }
}

你可能感兴趣的:(框架,Ajax,xml,J#,firefox)