2012-04-10 75 views
0

我试图让XML数据出现在HTML页面上。我使用Django来生成XML文件中的内容,并且每隔5秒钟使用Javascript来查看是否有新帖子将它们加载到页面中。XML数据没有出现在HTML页面

这里是我的XML文件:

<?xml version="1.0" ?> 
    {% for post in posts %} 
     <tr> 
      <td class="username">{{ post.username }}</td> 
      <td class="message">{{ post.message }}</td> 
      <td class="timestamp">[{{ post.timestamp }}] </td> 
     </tr> 
    {% endfor %} 

这里是我的javascript:

function setupRequest(){ 
    var request = new XMLHttpRequest(); 
    var posts = document.getElementById('posts'); 
    var i; 
    request.onreadystatechange = function() { 
     if (request.readState != 4){ 
      return ; 
     } 
     console.log("hello",request); 
     var XMLData = request.response 
     posts.innerHTML = XMLData; 
     // setTimeout("setupRequest()", 5000); 
    } 
    request.open("GET","/chat/grab/", true); 
    request.send(); 
} 
function init(){ 
    console.log('Init'); 
    setupRequest() 
} 


window.onload=init; 

这里是从我的浏览器控制台输出:

client.js:18Init 
chrome-extension://iljkdiphoadeehmlplkjgjpojdpdfgfa/content.js:1starting content 

下面是相关HTML:

<div id="box"> 
<table id="posts"> 
</table> 

</div> 

但是,没有任何东西出现在页面本身。有人有主意吗?我不知道发生了什么...

谢谢!

+0

以何种方式是XML?这是一个HTML片段。就Javascript而言,这实际上并没有什么区别,但你应该把它们称为事物。 – 2012-04-10 18:28:02

+0

你可以将任何东西放入XML;我有HTML片段,因为在代码由Django生成后,它在ID为'posts'的表中有意义。它/是一个XML文档。 – Helen 2012-04-12 05:17:26

+0

是的,我知道你可以将HTML片段放入XML中,我只是想知道为什么。你的Javascript中没有什么需要XML而不仅仅是HTML。用HTML做“Ajax”是完全可能的。 – 2012-04-12 08:52:06

回答

0

你有一个语法错误:

request.readState

应该

request.readyState

READSTATE总是不等于4.

+0

现在看来!非常感谢marteljn! – Helen 2012-04-10 18:28:50