<iframe onload=”alert(‘iframe is ok’)”>
你也可以在iframe的业面的最后给一个变量赋值﹐然后在当前页里用setTimeout获取那个值来判断是否加载完成
你也可以在iframe的业面的最后给一个变量赋值﹐然后在当前页里用setTimeout获取那个值来判断是否加载完成
解决方案 »
- jQuery近百个实用例子分享
- 怎么执行不了显示?
- 请推荐账本经典的JavaScript的好书,散60分!
- Ext.form.HtmlEditor 怎么用
- showModalDialog 打开的窗口怎么关闭?
- 关闭子窗口,在父窗口求和的js怎么做啊?附代码!高手来啊!!
- 急啊 如何获得table当前行啊 谢谢
- 在线编辑WORD,EXCEL等OFFICE文档控件的源代码
- 怎样处理这个“确认删除”?
- 加入访问密码的JS代码后,每次提交数据,页面刷新都要重新输入一次密码,怎么解决
- 在一个框架页中有两个框架,A和B, 在A中可以让B框架的页面中的窗体提交,如何写A的脚本
- 如何得到弹出式窗口的父窗口的句柄和焦点?
而且在IE5上好象不能处理iframe里的onload事件。
这是怎么回事呢?
<script language="JavaScript">
<!--
test.document.onreadystatechange=ex
function ex(){
if(test.document.readyState=="complete")
alert("已下载完")
}
//-->
</script>
这个页面onload完毕后就包括iframe也load完毕
我当时用了土办法,以阿信的页面为例,可以这样:
主页面:
<iframe src="demo.asp" name="test"></iframe>
<script language="JavaScript">
<!--
function checkDemo(){
if(test.loadOK){
//这里是需要处理的代码
}
else{
setTimeout("checkDemo();");
}
}
//-->
</script>
在demo.asp的最后一段,写上
<script language="JavaScript">
<!--
loadOK=ture;
//-->
</script>
虽然用setTimeout方法可以在一段时间后自动执行一段判断代码。但是在执行这些代码的时候,页面的其他部分也被执行着,也就是说已经运行到了需要调用iframe里的内容的地方了。这样一来IE还是会报错。说找不到iframe里的东西。
现在最主要的问题是怎么样让页面在iframe还没装载以前什么都不做。我本来想用死循环控制的。不过好象行不通,两秒种IE就弹出一个对话框提示继续执行可能需要很长时间,问是否继续。而且死循环的时候狂耗CPU,不是一个好的解决方法。
请问高手还有什么更好的解决办法吗?
<body onload="javascript:document.all.hideIt.style.display='none'">
<p align="center" id="hideIt" style="color:blue"><br><br><br>正在打开,请稍侯--------------</p>
test.document.onreadystatechange以上两个怎么理解啊?
check=null;
function ifload()
{
try
{sub.document.all.mytext.value="welcome";
clearTimeout(check);
window.status="done";
}
catch(e)
{
window.status="waiting";
}
}
check=setTimeout(ifload,2000);
</script>
<iframe id=sub src="sub.htm"></iframe>sub.htm
<script>
for(i=0;i<1000;i++)
window.status=i;
</script>
<input type=text name=mytext>
如果是ie6可以实现iframe的onreadystatechange捕获状态
否则,最好的办法是在此页定义一个客户端回调,由iframe加载的页面调用
状态是有但iframe的onreadystatechange事件是在ie5.5以后才开始支持的
你虽然知道需要readyState==4但你无法获知状态何时改变为这个值..
setTimeout可以,但结构上显得不太紧凑