javascript – 检查弹出窗口是否关闭

前端之家收集整理的这篇文章主要介绍了javascript – 检查弹出窗口是否关闭前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在打开一个弹出窗口
var popup = window.open('...','...');

这个javascript在控件中定义.然后从网页使用该控件.我想重新加载弹出窗口关闭时打开此弹出窗口的页面.

基本上用户需要在弹出窗口中输入一些面值并提交.然后将这些面额存储在用户会话中.当用户点击提交时,我关闭弹出窗口,同时要刷新打开此弹出窗口的窗口,以重新获取用户在弹出窗口中所做的更新.

我正在努力

var popup = window.open('...','...');
if (popup) {
  popup.onClose = function () { popup.opener.location.reload(); }
}

我想我这样做错了coz这似乎没有工作.

为了测试这个问题,我甚至尝试过这个,但没有出现警报.

if (popup) {
  popup.onclose = function() { 
    alert("1.InsideHandler");
    if (opener && !opener.closed) { 
      alert("2.Executed.");
      opener.location.reload(true); 
    } else { 
      alert("3.NotExecuted.");
    }
  }
}

解决方法

这是我的建议.

在弹出窗口有

<script type="text/javascript">

function reloadOpener() {
  if (top.opener && !top.opener.closed) {
    try {
      opener.location.reload(1); 
    }
    catch(e) {  }
    window.close();
  }
}
window.ununload=function() {
  reloadOpener();
}
</script>
<form action="..." target="hiddenFrame">
</form>
<iframe style="width:10px; height:10px; display:none" name="hiddenFrame" src="about:blank"></iframe>

那么在服务器进程返回

<script>
top.close();
</script>

老建议

在弹出窗口中没有名为弹出窗口的变量.
尝试

var popup = window.open('...','...');
if (popup) {
  popup.onclose = function () { opener.location.reload(); }
}

或通过测试:

popup.onclose = function () { if (opener && !opener.closed) opener.location.reload(); }

PS:onclose不支持所有浏览器

PPS:location.reload采用布尔值,如果要从缓存加载,则添加true如在opener.location.reload(1);

原文链接:https://www.f2er.com/js/154420.html

猜你在找的JavaScript相关文章