Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当弹出窗口关闭时,如何刷新父页面?_Javascript_Jquery - Fatal编程技术网

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

Javascript 当弹出窗口关闭时,如何刷新父页面?,javascript,jquery,Javascript,Jquery,我对关闭pop时刷新主页的功能有一些问题 在我的弹出页面中,我有以下javascript $(function () { window.onunload = function () { if (window.opener && !window.opener.closed) { window.opener.popUpClosed(); } }; }); 在主页中,我有以下javascript

我对关闭pop时刷新主页的功能有一些问题

在我的弹出页面中,我有以下javascript

$(function () {        
    window.onunload = function () {
        if (window.opener && !window.opener.closed) {
            window.opener.popUpClosed();
        }
    };
});
在主页中,我有以下javascript

$(function () {
    function popUpClosed() {
        window.location.reload();
    }
});
我得到一个错误,对象不支持方法“popUpClosed”


我在StackOverflow中看到了此解决方案,但我不知道如何修复此错误。

您是否尝试过下一个答案:

var myPop = "pop up window selector"
myPop.onunload = function(){ 
  location.reload(); 
};
资料来源:

使现代化 您可以获得对如下窗口的引用:

var windowObjectReference = window.open(strUrl, strWindowName[, strWindowFeatures]);
资料来源:

使现代化 我刚刚意识到window.opener.popUpClosed正在主页上的全局范围中查找popUpClosed函数,但它实际上并没有在全局范围中声明,请尝试以下操作:

var popUpClosed = function () {
    window.location.reload();
};
删除document.ready事件处理程序将允许像弹出窗口一样从子文档访问它。还请注意,函数现在声明为:var=function{…};它允许通过window对象访问它。

这是因为window.opener没有任何称为popUpClosed的方法。卸下开窗器,如下所示:


但是,我如何使用选择器来获取弹出窗口?@Lucas_Santos我更新了我的答案,以演示如何获取对窗口的引用。@Lucas_Santos我实际上刚刚再次更新了我的答案,因为我认为您只需删除popUpClosed函数周围的document.ready事件处理程序即可修复代码。但是,我如何重新加载特定页面呢?父页面和另一个?window.opener是对打开当前文档的文档的窗口对象的引用。所以window.opener就像对父文档使用window一样,我知道window.opener是什么。我还知道它没有popUpClosed方法。他需要扩展window.opener。但我如何重新加载特定页面?父页面和另一个?@NickBeranek当您在全局范围内声明任何内容时,可以通过窗口对象访问它。例如:var key='val';alertwindow.key将输出val。因此,您可以声明一个函数:function key{return'val';},并按如下方式运行其代码:window.key;。因此,您可以向窗口对象添加函数,并从其他文档访问它。这里是一个演示:用window.opener.location.reload代替window.location.reload。
window.onunload = function () {
  if (window.opener && !window.opener.closed) {
    popUpClosed();
  }
};