我构建了一个每 3 秒重新加载一次的简单聊天。
聊天的实际重新加载是通过这个脚本完成的(从Google复制的,我之前只做过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 正在刷新。这使得复制文本变得非常痛苦。
非常感谢对此问题的任何建议/解决方案。我自己一直在考虑,如果聊天日志的文件大小发生了变化,也许让脚本只重新加载聊天,但我不知道如何做到这一点,谷歌也没有给我一个解决方案。
/埃里克
最佳答案
解决方案:-
首先创建 2 个 Div,1 个用于加载内容,它将被 css 隐藏(显示:无),然后创建另一个对用户可见的 Div,
<div id="hidden_content" style="display : none;"> </div>
<div id="chat"> </div>
你的内容将被加载到hidden_content中,然后添加另一个函数,每次在隐藏元素中加载内容时都会调用该函数,然后你可以检查hidden_content的div的字符串长度是否等于聊天div的内容,如果它是相等的,所以不需要在 chat div 中复制这些数据,如果不是,那么您可以使用 substr 来找出在hidden_content中添加了哪些新的更多字符,然后一旦您找到了之前不在聊天中的那些更多字符,“追加”他们聊天内容!
因此,只有新的字符才会附加到该聊天中,因此您可以选择并且它不会再次重新加载:),如果加载的内容像这样增加,则此解决方案将起作用:-
以前的内容+新内容
服务器上的意思是,如果文件上有一条消息,然后添加了另一条消息,则必须将另一条消息应用到旧消息上,
这根本不是一个好的解决方案,您的浏览器将始终下载完整的数据,这不是一个好的解决方案! ,抱歉英语不好:)
关于javascript - 刷新 div 而不删除文本选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27772753/