Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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_Timeout_Salesforce - Fatal编程技术网

关闭弹出窗口并刷新父页面javascript

关闭弹出窗口并刷新父页面javascript,javascript,timeout,salesforce,Javascript,Timeout,Salesforce,我想关闭弹出窗口并刷新父项,但在几秒钟延迟后,以确保所有数据都已收到。目前我有以下几点 function closeAndRefresh(){ setTimeout(function() { window.open('/{!currSubId}','_top'); window.location = window.location.href; return true; },5000)} 此代码刷新父窗口,但在弹出窗口内部,因此弹出窗口不会关闭,而父窗口显示刷新的弹出窗口

我想关闭弹出窗口并刷新父项,但在几秒钟延迟后,以确保所有数据都已收到。目前我有以下几点

function closeAndRefresh(){    
  setTimeout(function()
 {     
window.open('/{!currSubId}','_top');
window.location = window.location.href;
return true;
},5000)}

此代码刷新父窗口,但在弹出窗口内部,因此弹出窗口不会关闭,而父窗口显示刷新的弹出窗口

,因此将弹出窗口移到超时之外,为其命名,调用close,然后重新加载

function closeAndRefresh(){    
    var winPop = window.open('/{!currSubId}','_top');  //load pop up give it a name
    window.setTimeout(function(){
        winPop.close();  //close pop up
        window.location.reload(true);  //refresh current page
    },5000);
}

您可以只使用对服务器的Ajax调用,而不必处理弹出窗口,不知道弹出窗口拦截器是否会阻止它,也不知道调用是否完成。当通话结束后,您可以重新加载页面。

为什么弹出窗口在超时时间内?好的想法是关闭和刷新在超时时间内。因此,您将关闭代码放在内部,弹出窗口放在外部。感谢您的快速回答,但是,这会关闭弹出窗口,但在5秒钟后不会刷新(或者不等待5秒刷新)如果弹出窗口关闭,它应该重新加载当前页面。控制台中有错误吗?但我希望它在几秒钟后重新加载,因此我确信它收集了所有数据(大约需要3秒).无控制台错误我不确定代码为什么不工作,它应该重新加载运行代码的页面。因为它正在弹出页面上运行-我很抱歉。如果我不清楚,我很抱歉。