帮帮忙吧各位高手,来看看什么问题

dyduyan 2007-04-20 03:11:48
聊天室分屏
已经实现分屏功能,但内容显示不到分屏的那个上面
分屏采用的是div层用两个div层,点击选中分屏,则第二个div层显示出来
这个做到了,关键是现在分屏的那个层不能显示内容阿,每次自己发内容只在上面显示,下面的不显示。而如果用另外的客户端发来,则自己的客户端另外一个div层就会把原来没有显示的一起显示上去,而且对方发来的消息还重复一遍,如果对方再发来消息,还会把上面重复的覆盖,然后继续这一句话重复一遍
代码如下
//发送消息
function send()
{
var txtContent = document.all("content").value; //文本框输入内容
if (txtContent == "") return;

var user_to = document.all("userlist").value; //聊天对象
var textcolor = document.all("textcolor").value; //颜色
var expression = document.all("expression").value; //表情
var isPublic = !(document.all("isSecret").checked); //是否密谈

//调用服务器端方法发送消息
Chat.ChatRoom.SendMsg(txtContent, user_to, textcolor, expression, isPublic);

//更新聊天内容显示
var div = document.all("chatcontent");

var isLeft = !(document.all("isLeft").checked);
div.innerHTML = div.innerHTML+Chat.ChatRoom.GetNewMsgString().value;
if(!isLeft)//如果分屏被选中
{
var div1 =document.all("chat1");
div1.innerHTML=div1.innerHTML+Chat.ChatRoom.GetNewMsgString().value;
}
//清空输入框
document.all("content").value = "";
}

//定时更新聊天内容
function refresh_chatcontent()
{
//调用服务器方法获取最新消息的HTML字符串
var div = document.all("chatcontent");
var strNewMsg =Chat.ChatRoom.GetNewMsgString().value;
var isLeft = !(document.all("isLeft").checked);

//判断是否为空,避免不必要的更新
if (strNewMsg != "")
{
div.innerHTML =div.innerHTML+strNewMsg;
if(!isLeft)
{
var div1 =document.all("chat1");
div1.innerHTML=div.innerHTML+strNewMsg;
}
}

//定时更新
window.setTimeout(refresh_chatcontent, 1000);
}
//是否分屏
function isCleft()
{
var isLeft = !(document.all("isLeft").checked); //是否分屏
var div = document.all("chatcontent");
var div1 =document.all("chat1");
if(!isLeft)
{
div.style.height="60%";
div1.style.display="block";
div1.style.height="40%"
}
else
{
div.style.height="100%";
div1.style.display="none";
}
}
用ajax做的每次都要靠对方发来消息分屏才会把没有显示的显示出来,自己发分屏不显示。而且发来的消息还重复,并且重复的那个会被后来发来的消息替代
...全文
193 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aricc 2007-04-20
  • 打赏
  • 举报
回复
友情帮顶
dyduyan 2007-04-20
  • 打赏
  • 举报
回复
来些人看看吧
dyduyan 2007-04-20
  • 打赏
  • 举报
回复
来个人给指条路啊
我承认我菜,但大家都是由菜到不菜啊,就帮帮我吧。给指点指点
dyduyan 2007-04-20
  • 打赏
  • 举报
回复
我试过不用动态分屏,即以开是就分两个层,那样的下面的层是显示最新的内容比如我用判断语句判断如果选中私聊才显示在下面,那下面只显示私聊内容,但现在我动态控制分屏就出现以上问题,为什么啊
V68V6 2007-04-20
  • 打赏
  • 举报
回复
顶!!友情帮顶,等候高手降临。。。。。
dyduyan 2007-04-20
  • 打赏
  • 举报
回复
谢谢你们帮顶这样不会沉,高手也看得到
dyduyan 2007-04-20
  • 打赏
  • 举报
回复
意思就是上下两个屏,我本意是如果选中分屏才在下面显示内容,但现在选中了自己发消息地下不显示,而别人发消息自己的分屏的那部分就把上面的内容完全显示过来,没有从最新的显示
好像就像没有取到div1一样,把div1和div都当成一样的了,而且发来的消息还有重复,且重复语句会被下一句替代,如此循环
那个Chat.ChatRoom.GetNewMsgString()是后台方法用来取用户最新的没有读取过的消息,如果不加入分屏功能一切ok,正常显示聊天内容,现在加入分屏功能,上面显示一切正常,分屏的内容显示异常
guyehanxinlei 2007-04-20
  • 打赏
  • 举报
回复
友情帮顶
tyrang8203 2007-04-20
  • 打赏
  • 举报
回复
只能帮你顶了!!!我真不明白!
dyduyan 2007-04-20
  • 打赏
  • 举报
回复
100分都没有人帮看看阿。刚才才if语句中加了alert,证明选中分屏,那if语句是执行的,那为什么自己发布显示了?别人发过来就把上面所有的都显示在下面呢??
dyduyan 2007-04-20
  • 打赏
  • 举报
回复
我晕,给点建议阿
egyqy 2007-04-20
  • 打赏
  • 举报
回复
不懂 帮顶

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧