2012-02-18 76 views
0

我有一個div,我每1秒用Ajax重新加載一次。並且它具有溢出的自動值。爲了讓我的div始終保持最低,我在Ajax請求中使用了一個JavaScript代碼。不可選擇的Ajax內容

xmlHttp.onreadystatechange=function(){ 
    document.getElementById('chatting').scrollTop = 9999999; 
    if(xmlHttp.readyState==4){ 
     document.getElementById('chatting').innerHTML=xmlHttp.responseText; 
     setTimeout('Ajax()',1000); 
    } 
} 
var withdate=document.getElementById('firstdate').value; 
nocache = Math.random(); 
xmlHttp.open("GET","db.getMessages.php?date=" + withdate + "&nocache = "+nocache,true); 
xmlHttp.send(null); 
} 

window.onload=function(){ 
    setTimeout('Ajax()',1000); 
} 

但我不能選擇文本,也不能上去。當新內容加載時,div滑動到底部。我該如何解決這個問題?


我也有問題。我正在使用PHP文件來定義json內容。而輸出是這樣的:

{ "msg": [{"from":"demo","text":"test message "} ] } 

但Firebug的顯示了這個錯誤對我說:

錯誤:JSON.parse:意外的字符 源文件:http://localhost/script/script/json.js 線:20

線20是:

var msgs = JSON.parse(xhr.responseText);

我奮鬥了這麼多,但還沒有解決:(

+0

它看起來不太「jQuery」 – gdoron 2012-02-18 22:15:42

回答

0

您替換整個聊天元素,並期望瀏覽器記住並保持選擇? 我想你正在實現一個簡單的聊天客戶端,對吧?那麼,爲什麼不只是拉消息,而不是,我猜,所有?以JSON形式返回所有消息,並自行創建DOM節點,並將其附加到聊天元素。該方法允許您選擇內容,因爲它從不改變,並保持流量不變。

BTW: 非緩存參數通常是使用時間戳完成,因爲時間總是不斷增加。 Math.random()不保證是唯一的。

+0

我不擅長JavaScript編程,你能舉個例子嗎? – 2012-02-19 11:17:49

+0

你去了哪裏:http://pastebin.com/3sA3CBYF 我對代碼做了一些更改,所以我可以在沒有Messages.php的情況下運行它。但最終這會奏效。 – spidey 2012-02-19 18:07:18

+0

非常感謝,這非常有幫助! – 2012-02-20 15:25:45