Can the parent window be notified when a child window closes? (on a diff domain)

后端 未结 2 1128
遥遥无期
遥遥无期 2020-12-09 05:42

Can the parent window be notified when a child window closes? (on a different domain?)

Trying to get around the window.opener not working when on different domains.<

相关标签:
2条回答
  • 2020-12-09 06:03

    You can't directly be notified of the window closing, but you can work out when the child window has been closed by inspecting the closed property on the window object reference returned by window.open().

    Here's an example that will display an alert within 5 seconds of the child window being closed by polling the closed property:

    var win = open('http://www.google.com');
    var intervalId = setInterval(function() {
            if (win.closed) {
                clearInterval(intervalId);
                alert('Window closed! Hoorah!');
            }
        }, 5000);
    
    0 讨论(0)
  • 2020-12-09 06:11

    A better solution with two pieces of code 1/ in the popup :

    $(window).bind('unload',
      function(){
        window.opener.PopupUnload(window)
      })
    

    2/ in the parent (main window) :

    function PopupUnload(wnd){
     setTimeout(function(){ // setTimeout is for IE
       if(wnd.closed)
         alert('You just killed me...')
      },10)
    }
    

    with this code, no function called forever (with setInterval()) and you make the difference between close and refresh popup (post/get)

    (tested in IE8 and FF3)

    0 讨论(0)
提交回复
热议问题