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

在子页面关闭时刷新父页面的问题,用到了弹窗控件
情况是这样的,a页面有个iframe ,这个iframe的src属性指向的是b页面,b页面有个按钮,单击它,弹出了页面c,用的是lhgdialog弹窗控件,调用方法如下:

$.dialog({ id: 'test1', title: '添加注册信息',width: 480, height: 186, content: 'url:c.asp?lsreg=<%=request.QueryString("lsreg")%>', nofoot: true,skin:'skyblue'});

现在要实现的效果是点击c页面的右上角的红叉关闭时如何刷新调用弹窗控件的页面,即b页面,注意不是a页面!

写的代码如下

c.asp页面: <body <%if request.QueryString("action")="close" then response.Write("onbeforeunload='closreload()'") end if%>> 然后是js 代码

 function closreload()
{
//self.window.opener.locaction.reload();
// window.location .href=window.parent;
//parent.location.reload(); 刷新了a页面,而a的iframe属性默认的src指向的并不是b页面,所以无效
window.opener.location.href=window.opener.location.href;
//var win = top.window;
  //if(win.opener) win.opener.location.reload();



}



  上面的几行代码,我都试过了,可是都不见效,大家帮帮忙啊!

------解决方案--------------------
如果弹窗控件不是用的弹出窗口,只是弹出的div 然后链接内容用的ajax获取的,那么你要刷新的其实就是本窗口了


//self.locaction.reload();

------解决方案--------------------
这个是弹层不是弹窗
parent.document.getElementById('bId').src = 'bsrc';

parent.frames['bname'].reload();
试试
------解决方案--------------------
我刚的回答被删了?

其实隐藏和关闭,在你要刷新的这个内窗体里是无差别的效果了

新写的close()会覆盖原来的

因此原来的会失效

解决办法:

先不用我原先的替换代码

用以下的方法

JScript code

var odialog=$.dialog({...]);
var odialogclose=odialog.close;
odialog.close=function(){
odialogclose.call(this);
window.location.href=window.location.href;
return false;
}