【问题标题】:Refresh Parent page on close of pop up window在弹出窗口关闭时刷新父页面
【发布时间】:2016-12-19 10:03:42
【问题描述】:

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

如下图

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 做到这一点?

【问题讨论】:

    标签: javascript html popup window


    【解决方案1】:

    方法一

    <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>
    

    它会创建一个带有链接的弹出窗口以关闭窗口并刷新父窗口。

    演示:https://jsfiddle.net/eke4f72r/

    方法二

    <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>
    

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

    演示:https://jsfiddle.net/gv6nmdn9/

    编辑 使用方法 1 时,让您的父母打开您想要的弹出窗口,然后将其添加到您的孩子中:

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

    【讨论】:

    • @stack 你应该将它添加到FrmInwardHdrAdvanceSearch.aspx 中。第二个小提琴对我有用。也许您使用的是旧浏览器?
    • @stack 你应该在FrmInwardHdrAdvanceSearch.aspx 中添加&lt;a href="#" onclick="window.opener.location.reload();window.close();"&gt;&lt;/a&gt;
    • 类似&lt;something onclick="window.opener.location.reload();window.close();"&gt;close me&lt;/something&gt;
    【解决方案2】:

    在父页面中检测:

    iframe=window.open("");
    iframe.onclose=function(){
     window.location="redirect";
    };
    

    【讨论】:

    • 当我第一次加载父页面时,我得到错误Microsoft JScript runtime error: Object expected
    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 2016-03-09
    • 1970-01-01
    • 2012-07-09
    相关资源
    最近更新 更多