刷新div而不删除文本选择

时间:2015-01-05 02:44:02

标签: javascript jquery chat

我建立了一个简单的聊天,每3秒重新加载一次。

聊天的实际重新加载是通过这个脚本完成的(从谷歌复制,之前我只做过PHP,CSS和HTML):

$(document).ready(function() {
    $("#chat").load("system/chat.oclog"); // Loads chat upon page load
    var refreshId = setInterval(function() {
      $("#chat").load("system/chat.oclog");
    }, 3000);                            
    $.ajaxSetup({ cache: false });
});

现在问题。如果您要在chat-div中选择任何文本,则在刷新div时重新加载聊天时选择会消失。这使得复制文本变得非常痛苦。

非常感谢任何有关此问题的建议/解决方案。我本人一直在想,如果聊天记录的文件大小已经改变,可能只是让脚本重新加载聊天,但我不知道如何解决这个问题,谷歌也没有给我一个解决方案。

/埃里克

1 个答案:

答案 0 :(得分:1)

解决方案: -

首先创建2个Div,1用于加载内容,它将被css(display:none)隐藏,然后是另一个将对用户可见的

<div id="hidden_content" style="display : none;">  </div>
<div id="chat">  </div>   

然后你的内容将被加载到hidden_​​content中,然后添加另一个函数,每次在隐藏元素中加载内容时都会调用,然后你可以检查hidden_​​content的div的字符串长度是否等于chat div的内容,如果它是相同的,所以不需要在chat div中复制这些数据,如果没有,那么你可以使用substr找出在hidden_​​content中添加了哪些新的字符,然后一旦找到那些之前没有聊天的字符,“追加”他们的聊天内容!

因此,只有新的字符会附加到该聊天,因此您可以选择并且不会再次重新加载:),如果加载的内容增加如下,此解决方案将起作用: -

之前的内容+新内容

在服务器上的意思是如果文件中有一条消息然后又添加了另一条消息,那么另一条消息必须应用于旧的消息,

根本不是一个好的解决方案,你的浏览器总是会下载完整的数据,这不是一个好的解决方案! ,抱歉弱英语:)