您的位置:首页 > 移动开发 > Objective-C

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

2013-11-04 15:47 423 查看
在IE浏览器下,xmlDom对象一般这样被定义:

[html] view
plaincopy

var xmlDom= new ActiveXObject("Microsoft.XMLDOM");

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

[html] view
plaincopy

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方式,具体如下:

[html] view
plaincopy

var oParser=new DOMParser();

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

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

[html] view
plaincopy

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐