使用ajax将HTML doc附加到元素

时间:2012-08-14 14:55:24

标签: javascript ajax

我使用各种在线资源编写了这段代码,但我似乎无法弄清楚最后一部分。

function loadajax (event) {
    event.preventDefault();
    xhr = new XMLHttpRequest();
    xhr.onreadystatechange  = function(){ 
        if(xhr.readyState  == 4){
            if(xhr.status  == 200) 
                document.ajax.dyn="Received:"  + xhr.responseText; 
            else
                document.ajax.dyn="Error code " + xhr.status;
        }
    }; 

    xhr.open('GET', this.href, true);
    var content = document.getElementsByTagName('article')[0];

    content.innerHTML = xhr.responseText;
}

在我需要向页面添加内容之前,它似乎有效。确实content.innerHTML = xhr.responseText;没有任何回报。我收到一个简单的HTML文件,如何在我的页面中发布?我做错了什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

ajax调用是异步的。如果您将content.innerHTML = xhr.responseText;行移动到onreadystatechange函数中,它将会起作用:

function loadajax (event) {
event.preventDefault();
xhr = new XMLHttpRequest();
 xhr.onreadystatechange  = function() 
    { 
       if(xhr.readyState  == 4)
       {
        if(xhr.status  == 200) 
            document.ajax.dyn="Received:"  + xhr.responseText; 

            content.innerHTML = xhr.responseText;
        else
            document.ajax.dyn="Error code " + xhr.status;
        }
    }; 

xhr.open('GET', this.href, true);
var content = document.getElementsByTagName('article')[0];

}

答案 1 :(得分:1)

将您的content.innerHTML置于状态200条件下。

您只是在内容确实存在之前将值分配给内容。在ajax从服务器获取它之前。