首先你是否有办法直到初始化完成的标志是什么?
如果知道就可以将控件放在一个div内,设置其css style display属性为none,一旦初始化完成,在将其display属性设置为""。这是最安全的做法。

解决方案 »

  1.   

    你在A里可以这样试试:
    if (parent.framename2.document.all.b)
    {
      alert("控件B已经调入");
    }
    else
    {
      alert("不行!");
    }这里行判断该控件是否加载成功以后再执行命令会好些。
    另:你也可以结合try{}catch{}函数来做。
      

  2.   

    判断
    if (document.readyState=="complete")
    才执行你要的操作..其实你也可以想办法把你需要调用的功能放入你的子document的onload事件中处理
    这样可以减少数据同步带来的某些问题.
      

  3.   

    甚至某些功能以父文档提供回调的方式提供给子文档.
    因为子文档调用父文档暴露的function通常是安全的..
      

  4.   

    关于这种方式.我积累了不少的代码有兴趣可找我联系:
    [email protected]
      

  5.   

    timer=setInterval("try{yourFunc();clearInterval(timer);}catch(e){}",100);一直探测,直到yourFunc运行成功
      

  6.   

    可以做个大的层来控制,象现在的CSDN的首页一样,即美观又实用
      

  7.   

    在一个框架中加入结束的标志,例如在文件开始加入:
    <script>
    var endFinished = false;
    </script>
    在文件最后加入:
    <script>
    endFinished = true;
    </script>而在另一个框架中用循环来判断这个值:
    function loop() {
        try {
            if(endFinished) {
                // do what you want to do.
            } esle {
                setTimeout('loop();',200);
            }
        } catch (e){}
    }
      

  8.   

    谢谢各位!
    To: Reve(仨仁仕) 
    你在一个框架中定义的变量endFinished在另一个框架中能够用吗?To : qiushuiwuhen(秋水无恨) (  ) 
    用 var timer = setInterval( "try
    {
    parent.frames("LeftFrame").GetUserList();
    clearInterval(timer);
     }catch(e){}",
     100 );
    程序报错,说什么
    未结束的字符串常量。
      

  9.   

    我用这个好像就可以了。谢谢各位!
    for(;;)
    {
    if (parent.frames("LeftFrame").document.readyState=="complete")
    {
       parent.frames("LeftFrame").GetUserList();
       break;
    }
    }
      

  10.   

    不要隔行写
    var timer = setInterval( "try{parent.frames('LeftFrame').GetUserList();clearInterval(timer);}catch(e){}",100 );