<iframe onload=”alert(‘iframe is ok’)”>
你也可以在iframe的业面的最后给一个变量赋值﹐然后在当前页里用setTimeout获取那个值来判断是否加载完成

解决方案 »

  1.   

    但是我怎么实现在父页面等待呢?
    而且在IE5上好象不能处理iframe里的onload事件。
    这是怎么回事呢?
      

  2.   

    <iframe src="demo.htm" name="test"></iframe>
    <script language="JavaScript">
    <!--
    test.document.onreadystatechange=ex
    function ex(){
    if(test.document.readyState=="complete")
    alert("已下载完")
    }
    //-->
    </script>
      

  3.   

    在包含这个iframe的页面里面判断<body onload="alert('iframe已经下载完毕,而且可以通过DOM访问')">
    这个页面onload完毕后就包括iframe也load完毕
      

  4.   

    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>
      

  5.   

    if(test.readyState=="complete"){这样一步步测试也可以
      

  6.   

    说错,:(,if(test.document.readyState=="complete")
      

  7.   

    可是好象都没有达到那种要求啊。
    虽然用setTimeout方法可以在一段时间后自动执行一段判断代码。但是在执行这些代码的时候,页面的其他部分也被执行着,也就是说已经运行到了需要调用iframe里的内容的地方了。这样一来IE还是会报错。说找不到iframe里的东西。
    现在最主要的问题是怎么样让页面在iframe还没装载以前什么都不做。我本来想用死循环控制的。不过好象行不通,两秒种IE就弹出一个对话框提示继续执行可能需要很长时间,问是否继续。而且死循环的时候狂耗CPU,不是一个好的解决方法。
    请问高手还有什么更好的解决办法吗?
      

  8.   

    没看楼上的为什么不成,我想这样不知可不可以:在暗真中加入
    <body  onload="javascript:document.all.hideIt.style.display='none'">
    <p align="center" id="hideIt" style="color:blue"><br><br><br>正在打开,请稍侯--------------</p>
      

  9.   

    test.document.readyState
    test.document.onreadystatechange以上两个怎么理解啊?
      

  10.   

    <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>
      

  11.   

    ie在处理单一窗口文档载入好象是使用的单一线程,所以无限循环是行不同的.
    如果是ie6可以实现iframe的onreadystatechange捕获状态
    否则,最好的办法是在此页定义一个客户端回调,由iframe加载的页面调用
      

  12.   

    IE5开始就已经有readyState属性了吧?
      

  13.   

    IE5开始就已经有readyState属性了吧?
      

  14.   

    to fason(阿信) 
    状态是有但iframe的onreadystatechange事件是在ie5.5以后才开始支持的
    你虽然知道需要readyState==4但你无法获知状态何时改变为这个值..
    setTimeout可以,但结构上显得不太紧凑