jQuery load()的JavaScript替代方法

3

请问有没有纯JavaScript的替代jQuery load()方法的示例?或者可以指向一个包含示例的正确网站。

谢谢。

更新:

这不是我想要询问的问题。 我需要使用Ajax加载URL并将返回的HTML插入到一个“div”中。

我不太明白为什么会有负面评分。至少有人可以解释一下我的问题有什么问题吗?我搜索了所有地方,但找不到一个示例。


这不是我所问的。 - r.sendecky
哦,对不起。在jQuery中有两个load函数,我认为我想到的那个用得更普遍。 - Felix Kling
@Felix Kling 没问题,我修改了我的问题,以使其更加清楚。干杯 - r.sendecky
1个回答

4
为了使用纯JavaScript进行AJAX请求,您需要像这样做:
httpRequest = new XMLHttpRequest();

// Specify a function to handle the response.

httpRequest.onreadystatechange = function() {
    // Process the AJAX response in here.
}

// Make the AJAX request
httpRequest.open('GET', 'http://prajjwal.com/profile.json', true);

open方法的第一个参数是您想要进行的请求类型。在此示例中,我们进行了“GET”请求。第二个参数是您尝试检索的项目的url。第三个参数是一个布尔值,用于决定请求是否应该是异步的。如果请求是异步的,您的函数将不会停止并等待请求完成。

值得注意的是,在Internet Explorer 8或更低版本中,这种方法不起作用。要支持那些浏览器,您需要使用:

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

为了处理响应,您的处理程序需要类似以下内容:
function handleRequest() {
  if (httpRequest.readyState === 4) {
    if (httpRequest.status === 200) {
      yourdiv.innerHTML = httpRequest.responseText;
    } else {
      console.log('There was a problem with the request.');
    }
  }
}

httpRequest.onreadystatechange = handleRequest;

httpRequest.readyState 会告诉你请求的进展情况。当它的值为4时,表示请求已经完成并且可以被处理。

需要记住的是,使用 open() 方法时无法请求其他域上的资源。


这不是我要求的。谢谢。 - r.sendecky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接