Javascript 打开弹出窗口并在关闭弹出窗口时刷新父页面
我按窗口打开了一个弹出窗口。在JavaScript中打开,我想在关闭此弹出窗口时刷新父页面。(onclose事件?)我如何才能做到这一点Javascript 打开弹出窗口并在关闭弹出窗口时刷新父页面,javascript,html,javascript-events,Javascript,Html,Javascript Events,我按窗口打开了一个弹出窗口。在JavaScript中打开,我想在关闭此弹出窗口时刷新父页面。(onclose事件?)我如何才能做到这一点 window.open("foo.html","windowName", "width=200,height=200,scrollbars=no"); 弹出窗口中没有您可以收听的任何关闭事件 另一方面,当窗口关闭时,有一个closed属性被设置为true 您可以设置计时器来检查关闭的属性,并按如下方式执行: var win = window.open('fo
window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
弹出窗口中没有您可以收听的任何关闭事件 另一方面,当窗口关闭时,有一个closed属性被设置为true 您可以设置计时器来检查关闭的属性,并按如下方式执行:
var win = window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no");
var timer = setInterval(function() {
if(win.closed) {
clearInterval(timer);
alert('closed');
}
}, 1000);
看这个 您可以使用“”访问父窗口,因此,在子窗口中编写如下内容:
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
window.onunload=refreshParent;
函数refreshParent(){
window.opener.location.reload();
}
在您的子页面上,放置以下内容:
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
如果您的应用程序在支持HTML5的浏览器上运行。你可以用。这里给出的例子与你的很相似 window.open将返回对新创建窗口的引用,前提是打开的URL符合 这应该起作用:
function windowClose() {
window.location.reload();
}
var foo = window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");
foo.onbeforeunload= windowClose;
我用这个:
<script language='javascript'>
var t;
function doLoad() {
t = setTimeout("window.close()",1000);
}
</script>
<script type="text/javascript">
function refreshAndClose() {
window.opener.location.reload(true);
window.close();
}
</script>
<body onbeforeunload="refreshAndClose();" onLoad='doLoad()''>
变量t;
函数doLoad(){
t=setTimeout(“window.close()”,1000);
}
函数refreshAndClose(){
window.opener.location.reload(true);
window.close();
}
您可以通过parent命令(parent是窗口)进入主页面,在完成该步骤后,您可以使一切
function funcx() {
var result = confirm('bla bla bla.!');
if(result)
//parent.location.assign("http://localhost:58250/Ekocc/" + document.getElementById('hdnLink').value + "");
parent.location.assign("http://blabla.com/" + document.getElementById('hdnLink').value + "");
}
您可以在父页面中使用以下代码
<script>
window.onunload = refreshParent;
function refreshParent() {
window.opener.location.reload();
}
</script>
window.onunload=refreshParent;
函数refreshParent(){
window.opener.location.reload();
}
在我的例子中,我在父页面中单击链接按钮打开了一个弹出窗口。
使用关闭子级时刷新父级
window.opener.location.reload();
在子窗口中导致重新打开子窗口(我猜可能是因为视图状态。如果我错了,请更正我)。
所以,我决定不在父级中重新加载页面,而是再次加载页面,并为其分配相同的url
为了避免关闭弹出窗口后再次打开弹出窗口,这可能会有所帮助
window.onunload = function(){
window.opener.location = window.opener.location;};
试试这个
self.opener.location.reload();
打开当前窗口的父窗口并重新加载该位置
以下代码将在关闭后刷新父窗口:
function ManageQB_PopUp() {
$(document).ready(function () {
window.close();
});
window.onunload = function () {
var win = window.opener;
if (!win.closed) {
window.opener.location.reload();
}
};
}
我不想用定时器!还有其他想法吗?有点不切实际,但我认为使用计时器在所有浏览器中都会起到最好的作用。如果弹出窗口在关闭前有几个页面,这也是最好的解决方案,因为onunload事件只有在用户离开第一个页面后才会触发。我不知道window.opener,谢谢!我总是将调用者窗口放在孩子的contentWindow中的一个变量中:-/如果您不控制子页面上的JavaScript(例如OAuth流),则需要使用setInterval
检查popupWindow.closed
,就像@Zuul的解决方案一样。当弹出窗口关闭时,而不是当用户单击按钮刷新页面并关闭弹出窗口时window@gengkev,我知道OP希望将事件附加到窗口关闭,但我相信使用按钮是更好的UI设计。然而,我包含了这两个方面的代码。请告知。我使用了函数refreshAndClose(){window.opener.location.reload(true);}self.close();“否则,您无法在不同的窗口之间进行通信。”是错误的。尽管我推荐@Moses-1中的答案,但这种技术仍然是可行的。如果你举一个小例子,你甚至会得到+1;-)不要介意。但我不认为开窗器适合IE。我会试试看。@kay,在IE7和IE8中效果很好。很好,我以前不知道+1对于摩西。@ArMaN:,使用window.opener。您可以使用此功能测试您的环境。如果用户能够在打开的窗口中查看链接,则此功能将不起作用。我很确定在第一次加载目标URL之前会抛出一个卸载事件,因为您隐式地将其保留为空。(+1表示提及SOP)请检查:可能会帮助某人
self.opener.location.reload();
function ManageQB_PopUp() {
$(document).ready(function () {
window.close();
});
window.onunload = function () {
var win = window.opener;
if (!win.closed) {
window.opener.location.reload();
}
};
}