在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);
- }