你上面这样做也是可以实现的
但你还可以将init方法放在123.html的onload时间里调用
将传递的值放在
var str = window.open("123.html?value="+value,"newwindow","Height:600px; Width: 400px;Top: 100;
Left: 100;resizable: no; status: no;scroll:no");
但你还可以将init方法放在123.html的onload时间里调用
将传递的值放在
var str = window.open("123.html?value="+value,"newwindow","Height:600px; Width: 400px;Top: 100;
Left: 100;resizable: no; status: no;scroll:no");
window.opener.a来调用父窗口的变量a,函数也一样
因为当子窗口没有完全加载完毕的时候会出现错误
尽管有其他的办法可以弥补 但是不如在子窗口的onload自己调用来得实在但是子窗口用window.opener.[……](子窗口是用window.open方式打开) 来调用父窗口的全局变量或函数会好很多
当然就也可以赋值了。2. 父窗口如何调用子窗口的函数。 var wnd = window.open("123.html","newwindow","Height:600px; Width: 400px;Top: 100;
Left: 100;resizable: no; status: no;scroll:no");window.open返回的是子窗口的句柄,不是字符串。
通过这个句柄就可以访问子窗口了。3.
下面是我写的,老是不对。
var str = window.open("123.html","newwindow","Height:600px; Width: 400px;Top: 100;
Left: 100;resizable: no; status: no;scroll:no");str.init(value);
init(value)是子窗口的函数。
子窗口会根据从父窗口传过来的值在init函数里初始化一些子窗口要的数值失败的原因可能如下:
.str 对象为局部变量.调用str.ini(value)的时候访问不到.
把str声明为全局对象..调用的时候,了窗口未装载完.
对策:
判断 str.readyState == "complete"
{
window.open("123.html","newwindow","Height:400px; Width: 500px;Top: 100; Left: 100;
resizable: no; status: no;scroll:no");
}function inputAdvdFunKeyBlf_order(value)
{
document.getElementById("AdvdFunKeyBlf_order").value = value;
}
子窗口:function init()
{
AdvdFunKeyBlf_order_par = window.opener.document.getElementById("AdvdFunKeyBlf_order_child").value; for (i=0; i<4;i++)
AdvdFunKeyBlf_order_new[i] = AdvdFunKeyBlf_order_par.charAt(i);
……
}<body onLoad="init();">
……
<input id=uiViewApplyButton onClick=btnOKonclick() type=button value=Apply name="">
function btnOKonclick()
{
var value = AdvdFunKeyBlf_order_new;
window.opener.inputAdvdFunKeyBlf_order(value);
window.close();
}