关于IE8,Firefox3.6和Chrome的一个简单的ajax问题

时间:2011-03-16 02:40:59

标签: javascript ajax

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:好的,时间对话框不会提示

为什么某些对话框不能提示?

2 个答案:

答案 0 :(得分:1)

httprequest.send(null)在你的情况下根本不返回 - 它阻止js代码执行,所以在该行之后的任何事情都没有被执行 - 我不能告诉你它为什么这样做,它可能是特定浏览器或其他内容的实现细节。

您要在此处执行的操作是异步运行:在调用“open”方法时将“false”更改为“true”:

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

在相关的说明中 - 如果你要开始使用ajax,尝试一些像jQuery这样的javascript框架 - 作为一个js开发人员提供与浏览器无关的处理方法,他们可以让你的生活变得更轻松DOM,事件,ajax等。

答案 1 :(得分:0)

问候最大值 你的代码还可以,安德烈的答案很棒,我有两个注意事项:)

1- XMLHttpRequest如果您需要在域外请求页面,请在域外执行请求。请执行服务器端。

2,安德烈注意逃到jquery我很抱歉我不和他在一起,因为你应该首先学习关于JavaScript的所有事情,然后再与jquery一起玩jquery完全了解jquery做什么,我的openion在成为JavaScript专业人员之前不是某个库的用户