2008年4月29日星期二

转:子窗口刷新父窗口的问题

情况:用window.open()打开子窗口时候,如果子窗口要得到父窗口页面的某一个值,有两种办法:第一种将父窗口的那个值保存到formbean中然后在子窗口中用隐藏域得到,第二种就是在子窗口中用window.opener.document.getElementById("").value;

此时在子窗口做了某些操作要刷新父窗口,可以用window.opener.document.location.reload();来刷新父窗口.

注意:有时候用上面的方法刷新父页面的时候会出现个“重试”跟 “取消”的对话框!所以用以下代码可以解决:

window.opener.location.href=window.opener.location.href;



如果用showModalDialog模式窗口的话,父页面中要在参数中写明要传输的对象。例如:

window.showModalDialog("/abc.do?method=list"&typeId="+typeId+"&time=<%=new java.util.Date().getTime() %>",window,
"center:yes;dialogHeight:505px;dialogWidth:630px;toolbar:no;menubar:no;scrollbars:no;resizable:no;location:no;status:no;");

其中"window"就为要传输的对象,意思是将父页面的的整个对象传输到子页面里去。

所以在(如果父页面调模式窗口)子页面中就可以用window.dialogArguments来接受父页面传输过来的参数。

window.dialogArguments.document.forms[0].xxx.value;

来或许父页面的任何值。

没有评论: