本来父窗口调用子窗口实现是挺简单的,如下:
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();但还是有时出来有时不出来,气愤。
希望您能帮我解开这个症结,先谢谢了!
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();但还是有时出来有时不出来,气愤。
希望您能帮我解开这个症结,先谢谢了!
要么延迟加载
function loadData(){
handle.showDatas(datas);
}
setTimeout(loadData,2000);
原因我明白了。
>>把函数放在xxx.html页面中去加载,就不会出现这个问题了。
这里具体这么做?
延迟还是有风险,请问不用函数如何把datas传到子窗口?
var wnd=window.open(url。);
wnd.datas=datas; // 这里是把数据传给子页面
在子页面里我写了这样的延时
setTimeOut(showDatas(window.datas),1000);
以上showDatas是子页面里面定义好的加载数据的函数。这样做怎么会没有意义呢,我先用Ajax请求后台修改记录,修改成功的信息回传回来再用小窗口显示一下,这样全通过JS进行,小窗口就不用再请求后台一次了。