日期:2014-05-17  浏览次数:21231 次

如何在父窗口等待子窗口载入完成?? try catch
在父窗口中执行如下内容

var   w=window.open( "a.asp ");
w.add_row()       //a.asp   中的一个js函数


w.add_row()这一句总是出错,但我写成这样就不会错

var   w=window.open( "a.asp ");
alert(w);
w.add_row()       //a.asp   中的一个js函数

我经过观察发现是因为弹出窗口载入需要时间,如果紧接着执行w.add_row,add_row函数还没有初始化,就出错。

但如果用alert拖延一下时间再执行w.add_row,子窗口就载入完毕了,add_row就没问题。


我想能否用错误处理来   等待窗口载入完毕呢?   以下是我写的一点代码,因为第一次用try   catch,不懂运行机制,请大家指出。   (a.asp   中加入了一句   var   loadcomplete=true;)

        var   w=window.open( "a.asp ");
        var   err;
        while(!(w.closed||err)){
                try{
                      throw   w.loadcomplete;
                }catch(err){}
        }
        w.add_row();


另外除了出错处理还有什么别的办法   等待子窗口载入完成呢?

------解决方案--------------------
用回调方式
主窗口:
w = open();
function doSomething(){
....
}

子窗口
window.onload=function(){
parent.doSomething();
}