HTML frameset加载顺序的问题,高手请帮忙

laowai250 2011-04-27 12:19:04
一个聊天室框架页面,
<frameset rows="*,40%" frameborder="no" border="0" framespacing="0">
<frame src="pub_msg.html" name="pub_msg" scrolling="no" marginhight="0" frameborder="1" noresize="noresize" /></frame>
<frame src="refresh.html" name="refresh" border="0" frameBorder="no"></frame>
</frameset>

pub_msg.html有一个div id = "chatDiv"用户显示聊天信息

refresh.html是隔2秒定时用AJAX向后台请求聊天信息显示,现在遇到一个问题
当pub_msg.html没有加载完的时候,refresh.html
有一段代码 parent.pub_msg.document.getElementById("chatDiv");会加载不出来chatDiv后会报错,
怎样让pub_msg.html的所有代码加载完成了。再加载refresh.html呢?
...全文
278 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyond_me21 2011-04-28
  • 打赏
  • 举报
回复
if (parent.pub_msg.document.getElementById("chatDiv")!=null)判断元素不为空
laowai250 2011-04-28
  • 打赏
  • 举报
回复
当chatDiv未加载完成的时候,parent.pub_msg.document.getElementById("chatDiv")就是一个错误,根本无法比较是否为null.....

正确解决方法是,在主框架页面判断这个框架是否完成,若完成将refresh的路径重新指定,

<frame src="" name="refresh" border="0" frameBorder="no"></frame>
这里默认留空,如果框架加载完成,再给refresh的src赋予refresh.html值
beyond_me21 2011-04-27
  • 打赏
  • 举报
回复
通过js判断当所有框架加载完了才去调用refresh中的ajax方法
laowai250 2011-04-27
  • 打赏
  • 举报
回复
我这段代码实际上只写了一部分,不仅仅是pub_msg 还有一个私聊页面pri_msg
所以refresh.html是读取了私聊或公聊消息分别赋予到其对应的页面

所以不能仅仅把这个代码放到pub_msg里,因为还有pri_msg

你觉得如何解决
beyond_me21 2011-04-27
  • 打赏
  • 举报
回复
把refresh.html中隔2秒定时用AJAX向后台请求的js代码放到pub_msg.html的最底部就可以了
laowai250 2011-04-27
  • 打赏
  • 举报
回复
求代码。

61,115

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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