I am opening a child window for Facebook sharing this way:
window.open(sharingUrl,'','toolbar=0,status=0,width=626,height=436');
The window is automatically closed when a user clicks share or close...
Is there a way to add a listener to these events?
If you store a reference to the child window when you call window. open() , then you can poll using setInterval() to see whether the window is still open using the window. closed property.
A child window opens as separate window as a tab. Go back to the parent and click “Close child” and the child window closes. Viola!
opener. The Window interface's opener property returns a reference to the window that opened the window, either with open() , or by navigating a link with a target attribute. In other words, if window A opens window B , B. opener returns A .
How to check if an opened browser window is closed or not in JavaScript? To check if an opened browser window is closed, you can use the closed property in referenced window object in JavaScript. The property returns a boolean true if the window is closed and false if the window is in the opened state.
If you store a reference to the child window when you call window.open()
, then you can poll using setInterval()
to see whether the window is still open using the window.closed
property. The example below checks twice per second.
var child = window.open('http://google.com','','toolbar=0,status=0,width=626,height=436'); var timer = setInterval(checkChild, 500); function checkChild() { if (child.closed) { alert("Child window closed"); clearInterval(timer); } }
Note to others: If you are ever in a situation where you have control over the html in the child window, you could make use of the onbeforeunload event and alert the parent window.
For future references, I'd like to share another solution that doesn't require setInterval
:
var child = window.open('http://google.com','','toolbar=0,status=0,width=626,height=436'); child.onunload = function(){ console.log('Child window closed'); };
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With