不可选择的Ajax内容

时间:2012-02-18 22:07:33

标签: php javascript jquery ajax

我有一个div,我每1秒用Ajax重新加载它。并且它具有自动值作为溢出。为了让我的div始终处于最低点,我在Ajax请求中使用了一个javascript代码。

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);

我很挣扎但没有解决:(

1 个答案:

答案 0 :(得分:0)

您替换整个chat-Element并期望浏览器记住并保留选择? 我猜你正在实现一个简单的聊天客户端,对吧?然后,为什么你不只是拉新的消息而不是,我想,全部?将所有消息作为JSON返回并自行创建DOM节点,您追加到chat-element。这种方法允许您选择内容,因为它永远不会改变并保持流量下降。

顺便说一句: nocache - 参数通常使用时间戳来完成,因为时间总是在增加。 Math.random()不保证是唯一的。