通过JS加载XML文件,跨浏览器兼容

时间:2023-03-09 21:55:39
通过JS加载XML文件,跨浏览器兼容

引言

  通过JS加载XML文件,跨多种浏览器兼容。

  在Chrome中,没有load方法,需要特殊处理!

解决方案

  部分代码

try //Internet Explorer
{
 xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
 xmlDoc.async=false;
 xmlDoc.load(file);
}
catch(e)
{
 try //Firefox, Mozilla, Opera, etc.
 {
  xmlDoc=document.implementation.createDocument("","",null);
  xmlDoc.async=false;
  xmlDoc.load(file);
 }
 catch(e)
 {
  try //Google Chrome
  {
   var xmlhttp = new window.XMLHttpRequest();
   xmlhttp.open("GET",file,false);
   xmlhttp.send(null);
   xmlDoc = xmlhttp.responseXML.documentElement;
  }
  catch(e)
  {
   error=e.message;
  }
 }
}

   完整代码

    function parseXML(file){
        var xmlDoc;
        try //Internet Explorer
        {
         xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
         xmlDoc.async=false;
         xmlDoc.load(file);
        }
        catch(e)
        {
         try //Firefox, Mozilla, Opera, etc.
         {
          xmlDoc=document.implementation.createDocument("","",null);
          xmlDoc.async=false;
          xmlDoc.load(file);
         }
         catch(e)
         {
          try //Google Chrome
          {
           var xmlhttp = new window.XMLHttpRequest();
           xmlhttp.open("GET",file,false);
           xmlhttp.send(null);
           xmlDoc = xmlhttp.responseXML.documentElement;
          }
          catch(e)
          {
           error=e.message;
          }
         }
        }
        return xmlDoc;
    }