【问题标题】:Refresh a specific page when pop-up is closed (jQuery)弹出窗口关闭时刷新特定页面(jQuery)
【发布时间】:2012-03-02 04:57:54
【问题描述】:

我有一个名为 PopUp1 (page0.aspx) 的弹出窗口。当用户单击 PopUp1 的 GridView 中的一行时,它会打开一个新的弹出窗口来加载我的 page1.aspx。

如果用户点击新弹出窗口(page1.aspx)中的链接,则内容将替换为 page2.aspx 的内容。

我想要什么:如果用户关闭了打开 page1.aspx 或 page2.aspx 的第二个弹出窗口的窗口,则刷新 PopUp1 (page0.aspx)。

我怎样才能通过 jQuery 做到这一点?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    在 page1.aspx 和 page2.aspx 中添加一些 javascript 来刷新它们的父级(你不需要任何 jquery)

    在您的标记中:

    <body onunload="refreshParent();">
    

    在你的 javascript 中:

    var refreshParent = function () {
        if (opener && !opener.closed) {
            opener.location.reload();
        }
    };
    

    编辑:或者,如果您想将逻辑与标记分开:

    $(window).unload(refreshParent);
    

    【讨论】:

    • 确保在将函数作为回调传递给卸载处理程序之前定义函数。
    【解决方案2】:

    在您的新弹出窗口(page1.aspx 或 page2.aspx)中,放置以下 jQuery,当弹出窗口关闭或刷新时,它应该刷新打开的窗口:

    $(window).unload(function(){
        window.opener.location.reload();
    });
    

    如果您想在页面中执行某种工作流逻辑,还可以使用 .assign 方法更改打开页面的位置, 例如window.opener.location.assign('http://newurl');

    【讨论】:

      【解决方案3】:

      你可以使用普通的 javascript

      window.opener.reload();
      

      【讨论】:

      • 但是在哪个 javascript 文件中?我有一个 page0.js、page1.js 和 page2.js
      • page1.aspx 和 page2.aspx。正文标签中的 onunload 调用 window.opener.reload
      • 对不起,应该是 window.opener.location.reload();就像其他人的答案中所说的那样
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 2011-05-15
      • 1970-01-01
      相关资源
      最近更新 更多