在使用javascript发送ajax请求的时候,我们通常需要创建XMLHttpRequest对象,但是通常不同的浏览器兼容性不同。我们可以使用window.ActiveXObject来判断浏览器是否支持ActiveX控件,如果支持ActiveX控件,我们可以利用var xml=new ActiveXObject("Microsoft.XMLHTTP")的形式来创建XMLHTTPRequest对象,但是Microsoft.XMLHTTP也有局限性,需要需MSXML4.0支持。而在非 IE浏览其中可用var xml=new XMLHttpRequest()创建XMLHttpRequest对象。
在公司里看到了别人写的一种我觉得很好的方法,有效的解决了浏览器的兼容性问题。
function createXmlRequest(){
if(window.ActiveXObject && !window.XMLHttpRequest){
//IE浏览器
var msxmls = ['Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP'];
for (var i = 0; i < msxmls.length; i++) {
try {
return new ActiveXObject(msxmls[i]);
} catch (e) {
}
}
}else if(window.XMLHttpRequest){
//Mozilla、Opera 等非IE浏览器
return new XMLHttpRequest();
}else
{
return null;
}
}
本文介绍了一种用于解决不同浏览器间Ajax请求兼容性问题的方法。通过判断浏览器类型并选择合适的XMLHttpRequest对象创建方式,确保跨浏览器的Ajax操作一致性。
3118

被折叠的 条评论
为什么被折叠?



