songfuwang 2013-07-28 12:02 采纳率: 0%
浏览 2123
已采纳

javascript中的一个小问题(浏览器问题)

求助 javascript中的一个小问题
<

html>

<
head>

<
title>Ajax 简单的服务器请求

<
script type="text/javascript">

var xmlobj;

function CreateXMLHttpRequest()

{

if(window.ActiveXObject) //如果当前浏览器支持ActiveXObject则创建ActiveXObject对象

{

xmlobj = new ActiveXObject("Microsoft.XMLHTTP");

}

else if(window.XMLHttpRequest) //如果当前浏览器支持XMLHttpRequest则创建XMLHttpRequest对象

{

 xmlobj = new XMLHttpRequest();

}

}

function Req(q) //主程序函数

{

 CreateXMLHttpRequest();                    //创建对象

xmlobj.onreadystatechange = StatHandler;        //判断URL调用的状态值并处理

xmlobj.open("GET", "text.php", true);                //text.php是累加程序 

xmlobj.send(null); //设置不发送给服务器任何数据

function StatHandler()

{

 if(xmlobj.readyState == 4 && xmlobj.status == 200)        //如果URL成功使用警告框输出文本内容

{

         b=xmlobj.responseText;

         //alert(b);

         //alert(xmlobj.a);

         q.innerHTML=b;

         //b=null;      //这里去掉注释还是不行

}

};

}

<
/script>

<
body>

<
form action="">

<
div id='f1' onClick="Req(this);">点击1

<
div id='f2' onClick="Req(this);">点击2

<
div id='f3' onClick="Req(this);">点击3

<
div id='f4' onClick="Req(this);">点击4

<
div id='f5' onClick="Req(this);">点击5

<
br>

<
br>

<
br>

<
br>

在IE浏览器中不能累加 ,在其他浏览器中就没有问题 ,求解决!!!

  • 写回答

1条回答 默认 最新

  • viscent_huang 2013-09-02 01:57
    关注

    是代码问题,不是浏览器兼容问题。错在var xmlobj;这个全局变量。你的ajax调用应该使用回调函数的方式处理服务端响应。采用全局变量,变量名虽然一样,但是由于并发的原因,其引用的对象可能不同时间能指向不同的对象,导致“错乱”。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向