大家好,在开发中经常碰到一个问题,就是xmlhttp创建顺序问题,代码如下
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
} else if(window.ActiveXObject){
var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
for (var i = 0; i < prefixes.length; i++) {
try {
// try to create the objects
xmlHttp=new ActiveXObject(prefixes[i] + ".XmlHttp");
break;
}catch (ex) {
};
}
if(i==prefixes.length)throw new Error("Your browser does not support XmlHttp objects");
}
开发中测试的时候用一些浏览器就会出现问题,而把顺序换一下
if(window.ActiveXObject){
var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
for (var i = 0; i < prefixes.length; i++) {
try {
// try to create the objects
xmlHttp=new ActiveXObject(prefixes[i] + ".XmlHttp");
break;
}catch (ex) {
};
}
if(i==prefixes.length)throw new Error("Your browser does not support XmlHttp objects");
}else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
就可以解决。
想问一下为什么,在第一种情况下比如一个浏览器不支持XMLHttpRequest的话就不满足if条件,那应该转入else if去看是否匹配ActiveXObject,那应该什么浏览器都能创建成功啊,为什么还会出现浏览器不支持的问题,非要把创建顺序更换一下成第二种情况才能解决呢?
不知道描述的明不明白,希望高手解决,谢谢
[b]问题补充:[/b]
哈哈,应用起来当然是用框架,但是原理什么的还是要知道,要不光会用也没啥意思

xmlhttp创建顺序
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-