如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐)

原文地址为: 如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐)

在IE浏览器下,xmlDom对象一般这样被定义:

var xmlDom= new ActiveXObject("Microsoft.XMLDOM");
为了兼容Firefox,需要修改为:

if (window.ActiveXObject){
    var xmlDom=new ActiveXObject("Microsoft.XMLDOM");
}
else{
    if (document.implementation&& document.implementation.createDocument){
        var xmlDom= document.implementation.createDocument("","",null);
     }
}

在使用DOM操作XML文件时,我们可以使用Load方法直接加载文件路径即可,在ie和ff下通用。但是如果传入的是XML字符串,则在两种浏览器下就会有所不同,IE下可以使用LoadXML方法直接调入下XML串,在FF下则不存在该方法,因此要使用W3CDom方式,具体如下:

var oParser=new DOMParser();
   xmlDom=oParser.parseFromString(xmlStr,"text/xml");

为兼容各种浏览器,我们这样去做即可:

try{
  if (window.ActiveXObject){
    xmlDoc= new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = false;  
    isLoaded = xmlDoc.load(aXMLFileName); 
  } 
  else if
     (document.implementation&& document.implementation.createDocument){
        try{  
            xmlDoc = document.implementation.createDocument('', '', null);  
            xmlDoc.async = false;  
            xmlDoc.load(aXMLFileName);  
        } catch(e){  
            var xmlhttp = new window.XMLHttpRequest();  
            xmlhttp.open("GET",aXMLFileName,false);  
            xmlhttp.send(null);  
            xmlDoc = xmlhttp.responseXML;  
        }  
  }
  else{
  	  alert("load data error");
  }
  }
  catch(e){
  	alert(e.message);
  }



转载请注明本文地址: 如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐)

猜你喜欢

转载自blog.csdn.net/wcqlwyt/article/details/80592541