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

在IE浏览器下,xmlDom对象一般这样被定义:
1.var xmlDom= new ActiveXObject("Microsoft.XMLDOM");  
var xmlDom= new ActiveXObject("Microsoft.XMLDOM");

为了兼容Firefox,需要修改为: 

1.if (window.ActiveXObject){  
2.    var xmlDom=new ActiveXObject("Microsoft.XMLDOM");  
3.}  
4.else{  
5.    if (document.implementation&& document.implementation.createDocument){  
6.        var xmlDom= document.implementation.createDocument("","",null);  
7.     }  
8.}  

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

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

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

1.try{  
2.  if (window.ActiveXObject){  
3.    xmlDoc= new ActiveXObject("Microsoft.XMLDOM");  
4.    xmlDoc.async = false;    
5.    isLoaded = xmlDoc.load(aXMLFileName);   
6.  }   
7.  else if  
8.     (document.implementation&& document.implementation.createDocument){  
9.        try{    
10.            xmlDoc = document.implementation.createDocument('', '', null);    
11.            xmlDoc.async = false;    
12.            xmlDoc.load(aXMLFileName);    
13.        } catch(e){    
14.            var xmlhttp = new window.XMLHttpRequest();    
15.            xmlhttp.open("GET",aXMLFileName,false);    
16.            xmlhttp.send(null);    
17.            xmlDoc = xmlhttp.responseXML;    
18.        }    
19.  }  
20.  else{  
21.      alert("load data error");  
22.  }  
23.  }  
24.  catch(e){  
25.    alert(e.message);  
26.  }  
posted @ 2017-10-31 18:01  晒晒  阅读(301)  评论(0)    收藏  举报