请问如何确保iframe已经完全载入?

crackzzy 2003-08-22 03:49:03
我做的一个页面里面需要包含一个iframe这个iframe是一个aspx文件。而且我这个页面一开始就要用到iframe里的form里的数据。所以我的这个页面需要在一开始就确保iframe已经被完全载入了。并且在iframe被完全载入之前这段时间里应该什么都不做,空等iframe的装载。
请问高手如何实现?
...全文
320 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
fason 2003-08-27
  • 打赏
  • 举报
回复
啊?我的参考上面写着是ie4+开始支持的,:(
yonghengdizhen 2003-08-27
  • 打赏
  • 举报
回复
to fason(阿信)
状态是有但iframe的onreadystatechange事件是在ie5.5以后才开始支持的
你虽然知道需要readyState==4但你无法获知状态何时改变为这个值..
setTimeout可以,但结构上显得不太紧凑
fason 2003-08-26
  • 打赏
  • 举报
回复
IE5开始就已经有readyState属性了吧?
fason 2003-08-26
  • 打赏
  • 举报
回复
IE5开始就已经有readyState属性了吧?
yonghengdizhen 2003-08-26
  • 打赏
  • 举报
回复
ie在处理单一窗口文档载入好象是使用的单一线程,所以无限循环是行不同的.
如果是ie6可以实现iframe的onreadystatechange捕获状态
否则,最好的办法是在此页定义一个客户端回调,由iframe加载的页面调用
seabell 2003-08-26
  • 打赏
  • 举报
回复
<script>
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>
多菜鸟 2003-08-26
  • 打赏
  • 举报
回复
test.document.readyState
test.document.onreadystatechange

以上两个怎么理解啊?
hover_online 2003-08-26
  • 打赏
  • 举报
回复
没看楼上的为什么不成,我想这样不知可不可以:

在暗真中加入
<body onload="javascript:document.all.hideIt.style.display='none'">
<p align="center" id="hideIt" style="color:blue"><br><br><br>正在打开,请稍侯--------------</p>
多菜鸟 2003-08-26
  • 打赏
  • 举报
回复
up
crackzzy 2003-08-24
  • 打赏
  • 举报
回复
可是好象都没有达到那种要求啊。
虽然用setTimeout方法可以在一段时间后自动执行一段判断代码。但是在执行这些代码的时候,页面的其他部分也被执行着,也就是说已经运行到了需要调用iframe里的内容的地方了。这样一来IE还是会报错。说找不到iframe里的东西。
现在最主要的问题是怎么样让页面在iframe还没装载以前什么都不做。我本来想用死循环控制的。不过好象行不通,两秒种IE就弹出一个对话框提示继续执行可能需要很长时间,问是否继续。而且死循环的时候狂耗CPU,不是一个好的解决方法。
请问高手还有什么更好的解决办法吗?
fason 2003-08-22
  • 打赏
  • 举报
回复
说错,:(,if(test.document.readyState=="complete")
fason 2003-08-22
  • 打赏
  • 举报
回复
if(test.readyState=="complete"){

这样一步步测试也可以
damboo 2003-08-22
  • 打赏
  • 举报
回复
fason(阿信)的方法好象比较专业,我没有试过
我当时用了土办法,以阿信的页面为例,可以这样:
主页面:
<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>
cloudchen 2003-08-22
  • 打赏
  • 举报
回复
在包含这个iframe的页面里面判断<body onload="alert('iframe已经下载完毕,而且可以通过DOM访问')">
这个页面onload完毕后就包括iframe也load完毕
fason 2003-08-22
  • 打赏
  • 举报
回复
<iframe src="demo.htm" name="test"></iframe>
<script language="JavaScript">
<!--
test.document.onreadystatechange=ex
function ex(){
if(test.document.readyState=="complete")
alert("已下载完")
}
//-->
</script>
crackzzy 2003-08-22
  • 打赏
  • 举报
回复
怎么没人回答啊?自己给自己顶一下!
crackzzy 2003-08-22
  • 打赏
  • 举报
回复
但是我怎么实现在父页面等待呢?
而且在IE5上好象不能处理iframe里的onload事件。
这是怎么回事呢?
anita2li 2003-08-22
  • 打赏
  • 举报
回复
<iframe onload=”alert(‘iframe is ok’)”>
你也可以在iframe的业面的最后给一个变量赋值﹐然后在当前页里用setTimeout获取那个值来判断是否加载完成
nik_Amis 2003-08-22
  • 打赏
  • 举报
回复
up
[更新列表] ------------------------------------------------------------------------------------------------ v2.1.1 1、修复IE6静止定位的对话框导致页面变长的问题 v2.1.0 1、 增加menuBtn参数, 支持让对话框在指定元素附近弹出(菜单模式) 2、 剔除鸡肋参数'parent',框架相互调用请用javascript原生方法 3、 剔除对话框关闭后回调函数,如果需要使用请使用内置扩展方法 4、 如果有取消按钮回调函数,那关闭按钮的回调函数也将与其相同 5、 增加当出现多个对话框时让顶层的与众不同的特性 6、 让Esc键关闭最高层对话框 7、 锁屏的时候改用js屏蔽页面滚动功能,取消原来CSS隐藏滚动条,防止页面偏移 8、 给确定按钮增加Ctrl + Enter快捷键,锁屏的时候支持tab与方向键切换按钮焦点 9、 锁屏的时候屏蔽了键盘操作刷新、Tab切换(只在对话框中可用)与全选 10、修复Chrome特定情况下出现的iframe错位问题 11、修正2.0.8版本后锁屏不兼容Safari的问题 12、修复Firefox调大对话框拖帧的现象 13、修复拖动对话框时候可能因鼠标置入iframe窗口而导致鼠标被粘住的问题 14、修复了内部$.newId方法的一处错误,特定情况下导致定义了ID的对话框无法弹出 15、删除脚本对IE6 png bug内置支持,之前测试版本自动修复ie6 png皮肤是因为作者偷懒 16、修改aero皮肤CSS、针对IE6单独兼容,减少之前脚本修复png占用过多的客户端资源 17、默认皮肤改为前版的mini,没有使用任何背景图片,完全用css表现 18、修复一处隐秘BUG:当使用Ctrl+回车提交表单并弹出对话框时导致弹出新窗口 (因为此时焦点在对话框关闭链接上,这个快捷键让很多浏览器新建窗口) 19、重新绘制'earo'皮肤,修复毛边的问题 20、修复拖动的时候出现选中文本的现象(自动清除选择) 21、如果对话框高度超过浏览器视口的一半高度则不使用黄金比例垂直居中 22、修复了IE7通过url参数创建的iframe可能出现边框线的小问题 23、为了后续版能够提更多接口(小巧而强大的),想了很久狠心改了调用名:art.dialog(); 24、既然连入口都改了,那再改下配置名(为了后续可能的拓展): 'url'参数名改为'iframe' 25、可以自适应iframe内容的大小(不跨域的前提下) 26、对超过预设面积大小的对话框拖动自动采用替身的方式,以求拖动更流畅 27、新增加一个'data'的接口,它保存了你对话框每次创建的消息对象 (操作iframe消息将更加方便,如提交iframe表单。稍后添加更多的例子..) 28、对于简单的消息可以使用简写: artDialog('hello world') 29、让IE6支持覆盖下拉控件的同时也支持透明皮肤 30、优化锁屏渐变动画 31、修复范围限制函数没有生效的错误 32、修复一处笔误,忘记声明变量导致泄漏出去污染全局 v2.0.9 1、 优化代码结构,弹出后仍可访问内部方法(如关闭),大大增强了灵活性 2、 修正IE7锁屏的时候滚动条没有禁止的问题 3、 让焦点自动附加到确定按钮或者关闭按钮 v2.0.8 1、 修正超大对话框并使用定位时候可能被截取的BUG 2、 修复Opera无法正确处理对话框叠加高度(z-index)的BUG 3、 修复Opera设置坐标时候出现的变形BUG v2.0.7 1、 url参数加载外部页面的时候显示loading动画 2、 预加载皮肤背景图片 3、 优化拖动 v2.0.6 1、 解决页面载入即弹出的情况造成水平对齐不正常的BUG(主要是dom ready事件 绑定) 2、 增加parent参数,支持对话框穿越框架在父页面弹出 v2.0.5 1、 剔除yesClose参数,如果要点击确定或者取消按钮不自动关闭对话框,让回调 函数返回false即可 2、 更改x参数名为left,y为top,为后续版本拓展right与bottom参数需要 3、 修改皮肤aero和chrome的图标布局,让回行消息文本留出图标的宽度 v2.0.4 1、 修改一小处兼容框架样式,防止调用页面body设置了文本对齐导致对话框标题文 本也居中 v2.0.3 1、 增加id参数,可以方便外部脚本控制整个对话框,同时可防止对话框重复弹出 2、 增加yesClose参数,用于阻止对话框点击确定后自动关闭 v2.0.0 ...

87,917

社区成员

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

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