关闭弹出窗口后刷新父页面
我有aspx页面,其中有一个gridview,其中有一个更新按钮。当我点击更新按钮弹出窗口打开。第二个aspx页面(弹出窗口)有一个删除按钮。当我点击删除按钮关闭第二个aspx页面,并从第一个aspx页面的gridview中删除该行。我无法看到该行已经从gridview中删除,直到我手动刷新页面。关闭弹出窗口后刷新父页面
如何在关闭第二页(弹出窗口页面)后立即刷新父页面(具有gridview的页面)?我试过,但没有奏效:
Response.Write("<script>window.close();</" + "script>");
Response.Write("<script>window.opener.location.reload();</" + "script>");
可以在弹出窗口中使用window.opener
,只需添加
window.opener.location.reload();
在弹出窗口上onbeforeunload
或onunload
事件。但这不适用于Chrome,它适用于Firefox。
你身边的另一件作品可以用setInterval
检查弹出窗口在主网页关闭或不:
var page = null;
function openPopUp() {
page = window.open("desiredPage.html","windowName", "width=200,height=200");
setInterval(function() {
if(page != null && page.closed) {
window.location.reload();
}
}, 1000);
}
其次解决方案适用于所有浏览器。
我在aspx页面中添加了这个js代码:function close(){ \t \t var page = null; \t \t function openPopUp(){ \t \t page = window.open(“popupPageName.aspx”,“windowName”); \t \t的setInterval(函数(){ \t \t如果(页面= NULL && page.closed){ \t \t window.location.reload()} \t \t!},100); } 我做了这个C#代码:Response.Write(“”); 弹出窗口关闭但关闭后不会刷新父页面 – ITDeveloper
我对aspx不熟悉,但您复制了我在另一个函数中提供的代码,这意味着当您执行'close'函数时,'openPopUp'赢得'被执行。 看看[jsfiddle](https://jsfiddle.net/m3qupvwe/)当我点击它时,我创建了一个简单的按钮,一个新的弹出窗口会打开,按钮文本将被更改为测试,当你关闭弹出窗口的按钮'会得到旧值,这意味着页面重新加载:) – Niroda
请参阅:https://stackoverflow.com/questions/1318006/reload-parent-window-from-child-window –
编写代码而不是URl它将是有帮助的。 – Ravikumar
你可能想看看'window.postMessage'我认为这将是更好的解决方案 –