IE5是第一款引入XHR对象的浏览器。在IE5中,XHR对象是通过MSXML库中的一个ActiveX对象实现的。因此,在IE中可能会遇到3中不同版本的XHR对象,即:MSXML2.XMLHttp、MSXML2.XMLHttp3.0和MSXML2.XMLHttp.6.0。在处理IE5、IE6的兼容问题时,我们可以编写这样一段代码:
// 适用于IE7以前的版本
function createXHR(){
if(typeof arguments.callee.activeXString != "string"){
var varsions = ["MSXML2.XMLHttp","MSXML2.XMLHttp3.0","MSXML2.XMLHttp.6.0"];
for(var i=0,len=versions.length; i < len; i++){
try{
var xhr = new ActiveXObject(versions[i]);
arguments.callee.acriveXString = versions[i];
return xhr;
} catch (ex){
// 跳过
}
}
}
return new ActiveXObject(arguments.callee.activeXString);
}
其他浏览器,都支持原声的XHR对象,在这些浏览器中创建XHR对象使用XMLHttpRequest构造函数就可以:
var xhr = new XMLHttpRequest();
当然现在不存在IE5,所以只是一个拓展
评论