关于XML HTTP 的疑问

hibin101 2010-05-31 11:26:38
//XML HTTP请求对象的创建方法
if(typeof XMLHttpRequest == "undefined" && window.ActiveXObject){
function XMLHttpRequest(){
var arrSignatures = ["MSXML2.0.XMLHTTP.5.0","MSXML2.0.XMLHTTP.4.0","MSXML2.0.XMLHTTP.3.0",
"MSXML2.0.XMLHTTP.2.0","MSXML2.0.XMLHTTP","Microsoft.XMLHTTP"];
for(var i=0;i < arrSignatures.length;i++){
try{
var oRequest = new ActiveXObject(arrSignatures[i]);
return oRequest;
}catch(oError){
//ignore
}
}
throw new Error("MSXML is not installed on your system.");
}
}

var oRequest = new XMLHttpRequest();
oRequest.open("get","example.txt",false);
oRequest.send(null);
alert("status is"+oRequest.status+"("+oRequest.statusText+")");
alert("Response text is"+oRequest.responseText);

上面这段代码,在IE中是如何执行的呢?当new XMLHttpRequest()时找不到XMLHttpRequest对象时就会去执行上面的if语句块吗?javascript不是从上到下解释执行的吗?怎么会执行下面的再执行上面的呢,不明白,请教教我
...全文
53 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
toury 2010-05-31
  • 打赏
  • 举报
回复
你别一叶障目不见泰山啊;一个if遮住了你的双眼,呵呵。关键是function XMLHttpRequest()

<html>
<body>
<script>
if(typeof XMLHttpRequest == "undefined" && window.ActiveXObject){
function XMLHttpRequest(){
alert(2)
var arrSignatures = ["MSXML2.0.XMLHTTP.5.0","MSXML2.0.XMLHTTP.4.0","MSXML2.0.XMLHTTP.3.0",
"MSXML2.0.XMLHTTP.2.0","MSXML2.0.XMLHTTP","Microsoft.XMLHTTP"];
for(var i=0;i < arrSignatures.length;i++){
try{
var oRequest = new ActiveXObject(arrSignatures[i]);
alert(3)
return oRequest;
}catch(oError){
//ignore
}
}
throw new Error("MSXML is not installed on your system.");
}
}
alert(1)
var oRequest = new XMLHttpRequest();
alert('开始~~')
oRequest.open("get","example.txt",false);
oRequest.send(null);
alert("status is"+oRequest.status+"("+oRequest.statusText+")");
alert("Response text is"+oRequest.responseText);
</Script>
</body>
</html>

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧