当弹出窗口关闭时,如何刷新父页面?

时间:2012-02-28 19:34:15

标签: javascript jquery

关闭弹出窗口时刷新主页的功能有些问题。

在我的popUp页面中,我有以下javascript

$(function () {        
    window.onunload = function () {
        if (window.opener && !window.opener.closed) {
            window.opener.popUpClosed();
        }
    };
});

在主页面中,我有以下javascript

$(function () {
    function popUpClosed() {
        window.location.reload();
    }
});

我收到错误,该对象不支持'popUpClosed'方法。

我在StackOverflow中看到了这个answer的解决方案,但我不知道如何解决这个错误。

2 个答案:

答案 0 :(得分:0)

你有没有尝试下一个答案:

var myPop = "pop up window selector"
myPop.onunload = function(){ 
  location.reload(); 
};

来源:Refresh parent window when the pop-up window is closed

更新

您可以获得对此窗口的引用:

var windowObjectReference = window.open(strUrl, strWindowName[, strWindowFeatures]);

来源:https://developer.mozilla.org/en/DOM/window.open

更新

我刚刚意识到window.opener.popUpClosed()正在主页上的全局范围内寻找popUpClosed()函数,但它实际上并未在全局范围内声明,请尝试:

var popUpClosed = function () {
    window.location.reload();
};

删除此document.ready事件处理程序将允许从子文档(如弹出窗口)访问它。另请注意,该函数现在声明为:var <name> = function () { ... };,允许通过window对象访问它。

答案 1 :(得分:0)

这是因为window.opener没有任何名为popUpClosed的方法。请删除window.opener

window.onunload = function () {
  if (window.opener && !window.opener.closed) {
    popUpClosed();
  }
};