关闭弹出窗口时刷新父页面

6

我有一个父页面,在其中添加了搜索功能。

如下所示:

function FunClick(StrPriCaption) {
        var StrPriHTML = "";
        if (StrPriCaption == 'AdvSearch') {
            //document.getElementById('TxtCondition').value = "AdvSearch";
            //form1.submit();
            var StrPriReturnValue = "";
            window.open('FrmInwardHdrAdvanceSearch.aspx', null, 'height=370,width=630,top=0,left=0,resizable=yes,scrollbars=yes');

        }
 }

它完美地运作了。它为我打开一个弹出窗口页面进行搜索。

但是现在我想要的是,如果我关闭弹出窗口,我想要刷新父页面。

我尝试在子页面中使用以下代码,但它没有刷新父页面。

 function CloseWindow() {
    window.close();
    window.opener.location.reload();
 }

我该如何使用Javascript实现这个功能?
2个回答

9

方法一

<script>
function popup() {
    var win = window.open("", "Page Title", "toolbar=no, location=no");
    win.document.body.innerHTML = '<a href="#" onclick="window.opener.location.reload();window.close();">Close Me</a>';
}
</script>
<a href="#" onclick="popup()">Open Me</a>

它创建了一个弹出窗口,其中有一个链接可以关闭该窗口并刷新父窗口。

Demo: https://jsfiddle.net/eke4f72r/

方法 2

<script>
function popup() {
    var win = window.open("", "Page Title", "toolbar=no, location=no");
    var win_timer = setInterval(function() {   
      if(win.closed) {
          window.location.reload();
          clearInterval(win_timer);
      } 
      }, 100); 
}
</script>
<a href="#" onclick="popup()">Open Me</a>

它从父窗口检测子窗口是否关闭。如果为真,则重新加载页面。

Demo:https://jsfiddle.net/gv6nmdn9/

编辑:当使用方法 1 时,请确保您的父级打开所需的弹出窗口,然后在子级中添加以下内容:

<a href="#" onclick="window.opener.location.reload();window.close();">Close Me</a>

@stack 你应该将它添加到 FrmInwardHdrAdvanceSearch.aspx 中。第二个小提琴在我的端上可以工作。也许你正在使用旧的浏览器? - NETCreator Hosting - WebDesign
@stack 你应该在 FrmInwardHdrAdvanceSearch.aspx 中添加 <a href="#" onclick="window.opener.location.reload();window.close();"></a> - NETCreator Hosting - WebDesign
类似于 <something onclick="window.opener.location.reload();window.close();">关闭我</something> - NETCreator Hosting - WebDesign

0
在父页面中检测它:
iframe=window.open("");
iframe.onclose=function(){
 window.location="redirect";
};

当我第一次加载父页面时,我会收到“Microsoft JScript运行时错误:对象期望”的错误。 - Nad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接