情况是这样的,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(); }        上面的几行代码,我都试过了,可是都不见效,大家帮帮忙啊!

解决方案 »

  1.   

    如果弹窗按件是用open打开的新窗口,用
    //self.window.opener.locaction.reload();这个应该可以的
      

  2.   

    调用的代码替换成下面试试$.dialog({ id: 'test1', title: '添加注册信息',width: 480, height: 186, content: 'url:c.asp?lsreg=<%=request.QueryString("lsreg")%>', nofoot: true,skin:'skyblue',close: function () {this.hide();window.location.href=window.location.href;return false;}});
      

  3.   


    应该不是用的open,这句我试了,没反应
      

  4.   

    如果弹窗控件不是用的弹出窗口,只是弹出的div 然后链接内容用的ajax获取的,那么你要刷新的其实就是本窗口了
    //self.locaction.reload();
      

  5.   

    这个是弹层不是弹窗
    parent.document.getElementById('bId').src = 'bsrc';

    parent.frames['bname'].reload();
    试试
      

  6.   

    这样写确实可以,不过这样只能在点击右上角的红叉时隐藏那个弹出的窗口,我试着把this.hide()改成了this.close()发现点击红叉时无反应,可我看的那个控件的api好像有close方法,这是怎么回事?
      

  7.   

    隐不隐藏无所谓反正你不是要刷新本窗口了嘛?还有,那个写了会覆盖原来的close()...所以原来的没反应
      

  8.   

    我刚的回答被删了?其实隐藏和关闭,在你要刷新的这个内窗体里是无差别的效果了新写的close()会覆盖原来的因此原来的会失效解决办法:先不用我原先的替换代码用以下的方法
    var odialog=$.dialog({...]);
    var odialogclose=odialog.close;
    odialog.close=function(){
    odialogclose.call(this);
    window.location.href=window.location.href;
    return false;
    }
      

  9.   

    window.opener.document.getElementById("iframe").reload();iframe为框架Id