JavaScript代码:

var httprequest = new XMLHttpRequest();
var time = new Date();
if (httprequest) {
  httprequest.onreadystatechange = function () {
    if (httprequest.readyState == 4) {
      alert("OK");
    }
  };
  httprequest.open("GET", "http://www.google.com", false);
  httprequest.send(null);
}
alert(new Date() - time);


IE8:确定,将出现时间对话框
Chrome10:提示“确定”对话框,但不提示时间对话框
Firefox3.6:确定,不会出现时间对话框

为什么有些对话框不提示?

最佳答案

您的情况下的httprequest.send(null)根本不会返回-它阻止了js代码的执行,因此该行之后的所有内容均未执行-我无法告诉您为什么这样做,这可能是实现的细节在特定的浏览器或其他工具上。

您要做的是异步运行它:在调用“ open”方法时将“ false”更改为“ true”:

httprequest.open("GET", "http://www.google.com", true);


在相关说明中-如果您要开始使用Ajax,请尝试使用jQuery之类的JavaScript框架-作为js开发人员,它提供了与浏览器无关的方法来处理DOM,事件,Ajax,它们为简化您的生活做出了很大的贡献和更多。

关于javascript - 一个关于IE8,Firefox3.6和Chrome的简单Ajax问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5320458/

10-09 22:26