如何控制iframe连接失败后重新连接?

imatree 2002-09-18 12:48:59
现在iframe中的页面使用转向到自己的方法进行刷新(用Meta标签)。但是遇到断网或者其它问题无法连接这个页面时IE就会报错界面。(某些版本的IE甚至把iframe父窗口转向到报错界面)
我应该如何防止这种问题的发生?即用JavaScript检测到连接失败后暂时不刷新页面,直到连接成功。

很急!请执教!!!
...全文
195 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
烂笔头Danky 2002-09-21
  • 打赏
  • 举报
回复
可以用每一段时间刷新一次该框架来模拟实现,将就点吧!
peaty 2002-09-20
  • 打赏
  • 举报
回复
告诉你一个绝对安全的方法:

再加一个iframe(iframe2),但是大小为0*0,你在主页面用定时刷新的方法(不是iframe自己刷新,否则一次连接失败将不再更新)刷新这个iframe,这个iframe将执行以下方法:
var tempStr = "[被动态更新的内容...]";
parent.frames["iframe1"].body.innerHTML = tempStr;

这样如果页面读出来了就更新iframe1的内容,如果连接失败,更新语句不执行,iframe1的东西根本就不会动

不用费尽心思的去检测网络了
flyycyu 2002-09-18
  • 打赏
  • 举报
回复
用xmlhttp自己读取!
imatree 2002-09-18
  • 打赏
  • 举报
回复
算了,都不行,自己做一个了。当然,分还是要给的!呵呵
<script>
var test_v1 = '0';
function linkToOnline()
{
document.all.conntest.src='4.gif';
if (test_v1 == 1) {
alert('Error');
}
}

var test_v = 0;
function test()
{
if (test_v == 1) {
test_v1 = '1';
}
test_v = 1;
}
</script>
<img id=conntest src='' onError=test()>
<script>
linkToOnline();
</script>
imatree 2002-09-18
  • 打赏
  • 举报
回复
好像不行啊,请帮我看一看。
fokker 2002-09-18
  • 打赏
  • 举报
回复
上面的代码每隔10秒检查一次网络连接,如果正常则执行myFunc()。
fokker 2002-09-18
  • 打赏
  • 举报
回复
将这段代码放在你的iframe中

<script>
function oTestConn(url){
timer=1;
this.url=url;
this.myFunc=myFunc;
this.testConn=function(){
window.setTimeout("timer++",100);
var oImg=document.createElement("img");
oImg.src="http://" + url + "/" + Math.random();
oImg.onerror=this.myFunc;
}
function myFunc(){
alert("时间" + timer/10 + "秒");
}
}
var aa=new oTestConn(window.location.hostname);
aa.myFunc=function(){window.location.reload()};
window.setTimeout("aa.testConn();",10000)
//10秒钟后,如果网络连接正常则刷新页面,可以自己更改时间间隔
</script>
yonghengdizhen 2002-09-18
  • 打赏
  • 举报
回复
检查frame[x].document.readyState=="complete"
imatree 2002-09-18
  • 打赏
  • 举报
回复
谁帮我看看新浪的聊天室怎么做的,断线它会提醒,代码太乱我实在看不懂。请帮忙解决后马上给分!
cleo 2002-09-18
  • 打赏
  • 举报
回复
不用meta标签来自己刷新iframe,
在主页面里面使用定时器刷新,
刷新时先使用一个不可见页面判断网络状况,
如果正常再刷新iframe
imatree 2002-09-18
  • 打赏
  • 举报
回复
UP~UP~~~~

请帮帮忙!非常急!谢谢大家了!
Reve 2002-09-18
  • 打赏
  • 举报
回复
楼上的观点应该可以用,但个人认为不够直观,会受限制于IE
如果不是“某些版本的IE甚至把iframe父窗口转向到报错界面”,可以用一个循环来检测iframe页面的加载,过了30秒如果iframe里面自己需要的元素没有出现的话,就自己再加载一次。

但是这个方法也很烦!

关注中……

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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