【问题标题】:check if a window has closed, inside of a iframe检查窗口是否已关闭,在 iframe 内
【发布时间】:2012-09-02 22:53:32
【问题描述】:

所以我正在构建一个“喜欢”按钮,但是在用户通过小窗口登录后我遇到了一个小问题,用户必须刷新整个页面。我希望它检查窗口是否已关闭,然后刷新 iframe。所以我有这段代码来打开弹出窗口,我一直在查看这篇文章以寻求帮助,但这并没有太大帮助。 Check if a popup window is closed

function grubber_highlight()
            {           
                    var popup = window.open("http://www.grubber.co.nz/login/", "newwindow", config="height=600,width=800, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, directories=no, status=no");
                        var windowloc = document.URL;
                        var windowlocation = (windowloc + "&highlight=t");
                        window.location = windowlocation;   
                        if (popup) {
                          popup.onclose = function () { alert("closed"); }
                        }                   
            }

我有这段代码来检查窗口是否已经关闭,然后提醒我它已经工作了

                   if (popup) {
                        popup.onclose = function () { alert("closed"); }
                    }

小窗口在这里 http://www.grubber.co.nz/login/ 如果有人想知道。

我也希望它能够在大多数比 ie8 更新的浏览器上工作

编辑 我用谷歌搜索了一个但更深入的发现 onunload 它在关闭时起作用,但当我打开窗口时它也会启动......

问题

如何检测窗口何时关闭然后刷新 iframe

【问题讨论】:

  • 我不太明白你在问什么。您的问题是“如何将 alert("closed"); 替换为刷新 iframe 的其他代码?”
  • 没有如何检测小弹窗何时关闭
  • 您发布的代码表明您已经知道如何检测小弹出窗口何时关闭。毕竟,当弹出窗口关闭时,您正在运行警报代码。
  • “然后提醒我它已经工作了” - 你似乎在说你的代码已经告诉你弹出窗口何时关闭。跨度>
  • @nnnnnn 不,那没有用,这只是我遵循的某人的例子,但没有用

标签: javascript iframe


【解决方案1】:

假设弹出窗口是这样打开的:

win = window.open(...);

然后,您应该反复检查弹出窗口是否关闭。

var timer, win;
function polling(){
 if (win && win.closed) {
   clearInterval(timer);
   alert('popup window is closed.');
 } 
}
timer = setInterval('polling()',100);

更新: 另一种技术在讨论here

【讨论】:

  • 对不起,我认为没有人会回答,所以我继续进行 onunload 事情并得到了答案
  • @Ryanc1256 找到答案也可以分享给我们
【解决方案2】:

好的,谢谢,但是我通过 onunload 事件得到了我想要的答案

     var popup = window.open("http://www.grubber.co.nz/login/", "newwindow", config="height=600,width=800, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, directories=no, status=no");
var windowloc = document.URL;
var windowlocation = (windowloc + "&highlight=t");
window.location = windowlocation;
var e = 0;  
if (popup) {
     popup.onunload = function () {
        if (e == 1)
        {
         //this will reload the iframe
        alert("closed");
         }
        else
        {
          //this will be when the pop-up gets created
        e++;                                    
        }                         
}

【讨论】:

  • @Talha yer 那是我在问题中的例子,它并没有真正帮助,但它确实帮助我找到了 onunload 事件
猜你喜欢
  • 2017-09-14
  • 2014-10-23
  • 1970-01-01
  • 2011-06-03
  • 2011-09-10
  • 2012-03-08
  • 1970-01-01
  • 2017-02-21
相关资源
最近更新 更多