日期:2014-05-16  浏览次数:20389 次

怎么我在父窗口调用子窗口的函数有如段誉的功夫,时好用时不好用呢?
本来父窗口调用子窗口实现是挺简单的,如下:
var handle = window.open("XXX.html");
handle.showDatas(datas);

showDatas就是定义在子窗口中的JS函数,datas就是我要传给它的数据。
本来一切都没问题,但是,但是来了。

handle.showDatas(datas);这个函数的功能是把数组datas中的数据显示到表格中。

但这一句不是每次都成功的,有时候数据能显示出来,有时候又无法显示。

我发现,这样写倒是每次能出来:
var handle = window.open("XXX.html");
alert(1);
handle.showDatas(datas);

但alert不能随便加,于是我修改成。
handle.focus();但还是有时出来有时不出来,气愤。


希望您能帮我解开这个症结,先谢谢了!




------解决方案--------------------
而且还有传一个数组给子窗口?
------解决方案--------------------
是先加载页面xxx.html 然后在去掉函数。当xxx.html没有加载完使,你掉handle.showDatas(datas);当然不会有数据。 把函数放在xxx.html页面中去加载,就不会出现这个问题了。
------解决方案--------------------
要么把datas传到子窗口然后onload
要么延迟加载
function loadData(){
handle.showDatas(datas);
}
setTimeout(loadData,2000);