问题:我有一个asp.net按钮,点击即可使用window.open()
<script></script>
显示另一个窗口
&#34;实际上,一旦用户关闭子窗口,我需要在我的父页面上显示我的按钮所在的弹出窗口(警告消息)。&#34;
我尝试的一些事情如下:
我尝试使用setTimeOut()
暂停一段时间。这不起作用,因为控件不等待,直到超时完成。它只是继续执行下一组代码。
我尝试使用setInterval()
但由于某种原因它不适合我。以下是该代码片段。
$(document).ready(function () {
$('#<%=btnClick.ClientID%>').bind('click', function () {
var newWindow = window.open("http://www.google.com/", "google", 'resizable=1,width=900,height=800,scrollbars=1', '_blank');
newWindow.moveTo(0, 0);
var test = setInterval(function (e) {
if (newWindow.closed) {
alert("HEYY");
clearInterval(test);
__doPostBack("<%= btnClick.UniqueID %>", "");
}
else {
e.preventDefault();
}
}, 5000);
});
});
async : false
,它再次对我没有帮助。答案 0 :(得分:0)
将窗口和计时器变量置于事件处理程序的范围之外。您需要进行轮询,即定期继续检查窗口是否已关闭。使用setInterval
进行轮询将完成这项工作。
var newWin, pollTimer;
$('#btnId').bind('click', function () {
newWin = window.open("...", "...", "");
pollTimer = window.setInterval(function() {
if (newWin.closed) {
window.clearInterval(pollTimer);
callCodeWhenPopupCloses();
}
}, 5000);
});
function callCodeWhenPopupCloses() {
alert("Popup closed.");
...
}