Javascript 检查弹出窗口是否关闭
我正在打开一个弹出窗口Javascript 检查弹出窗口是否关闭,javascript,asp.net,internet-explorer-9,Javascript,Asp.net,Internet Explorer 9,我正在打开一个弹出窗口 var popup = window.open('...', '...'); 此javascript在控件中定义。然后从网页使用此控件。我想重新加载当弹出窗口关闭时打开该弹出窗口的页面 基本上,用户需要在弹出窗口中输入一些面值并提交。这些面额随后存储在用户会话中。当用户单击提交时,我将关闭弹出窗口,同时希望刷新打开此弹出窗口的窗口,以重新蚀刻用户在弹出窗口中进行的更新 我正在努力 var popup = window.open('...','...'); if (pop
var popup = window.open('...', '...');
此javascript在控件中定义。然后从网页使用此控件。我想重新加载当弹出窗口关闭时打开该弹出窗口的页面
基本上,用户需要在弹出窗口中输入一些面值并提交。这些面额随后存储在用户会话中。当用户单击提交时,我将关闭弹出窗口,同时希望刷新打开此弹出窗口的窗口,以重新蚀刻用户在弹出窗口中进行的更新
我正在努力
var popup = window.open('...','...');
if (popup) {
popup.onClose = function () { popup.opener.location.reload(); }
}
我想我做错了,因为这似乎不起作用
为了测试这个问题,我甚至尝试过这个,但没有出现警报
if (popup) {
popup.onclose = function() {
alert("1.InsideHandler");
if (opener && !opener.closed) {
alert("2.Executed.");
opener.location.reload(true);
} else {
alert("3.NotExecuted.");
}
}
}
以下是我的建议
在弹出窗口中,您应该有:
函数重载开启器(){
如果(top.opener&!top.opener.closed){
试一试{
开启器。位置。重新加载(1);
}
捕获(e){
}
window.close();
}
}
window.onunload=function(){
重新加载开启器();
}
然后在服务器进程中,您可以返回
top.close();
旧建议 弹出窗口中没有名为popup的变量。 试一试 或通过测试:
popup.onclose = function () { if (opener && !opener.closed) opener.location.reload(); }
PS:不是所有浏览器都支持
PPS:location.reload采用布尔值,如果不想从缓存加载,请添加true
如
opener.location.reload(1)中所示代码>相反,您应该使用这样的模式对话框
var popup = window.showModalDialog("page.html", "", params);
在对话框关闭之前,此操作将在此行停止
然后,在page.html中的某个地方,您可以编写一些javascript代码来设置窗口.returnValue
,它将放置弹出变量
更新
Window.showModalDialog()是。请尝试以下操作:
window.opener.location.reload(true);
或
在关闭前进入弹出窗口
window.opener.location.href = window.opener.location.href;
window.close();
好的,你要做的如下
创建一个方法“setWindowObjectInParent”,然后在弹出窗口中调用它。
var popupwindow
function setWindowObjectInParent(obj)
{
popupwindow = obj;
}
现在您有了一个可以调用焦点的对象
所以在弹出窗口中添加
$(window).unload(function(){
window.opener.setWindowObjectInParent();
});
window.opener.setWindowObjectInParent(window);
这将在弹出窗口关闭时取消对象设置,并在打开时设置对象
因此,您可以检查弹出窗口是否已定义,然后调用focus。您是否尝试过使用模式弹出窗口?您不希望在模式窗口中提交表单,除非您将表单提交到iframe,除非在模式窗口中提交表单很难,除非它有iframe要提交,以及如何阻止他们将表单放入iframe?要求是使用无模式弹出窗口打开时立即重新加载该窗口。顺便说一句,它是onclose,小写C。不是所有浏览器都支持它。为了进行测试,我使用了这个>>>popup.onclose=function(){if(opener&&!opener.closed){alert(“Executed…”;opener.location.reload();}但是警报从未显示。请将onClose更改为onClose,并确保您使用的浏览器支持此功能。对不起,我真的不知道为什么我否决了此功能。也许我只是太累了,打错了。除非修改答案,否则我无法撤消投票。很抱歉。
$(window).unload(function(){
window.opener.setWindowObjectInParent();
});
window.opener.setWindowObjectInParent(window);