How do i detect if a browser window is closed or refreshed ?

This was the question I was asking myself when I  had to write a piece of code which needed to respond differently on browser close and on browser refresh. To my worst nightmare i found this issue seemed to trouble a lot a people, i went through lots of forums and blogs which gave multiple solutions some even advising to forget the requirement, as it seemed near impossible to detect the difference between a browser close and refresh.
I think i have stumbled on a snippet of code which will detect if the page was refreshed or closed. I had tested this code on windows (IE 7,8,9 – Chrome – Firefox – Safari – Opera) and mac (Safari 4,5 – Firefox – Chrome).
This is a experimental code which i would like you to use and review it. Do let me know your comments.
On request i am including the 2 sample test files which i used to test on my machine. Run the file test.html from the zip file. Which on close / on refresh of the window will open a popup and once the new popup comes check your browser’s console log.
You will find the parent window close / refresh status message on the console after a 2 second delay. This delay is for the browser to complete the DOM manipulation i.e. close or refresh before we do the check. Please click on the sample code link to download the sample code.
Sample Code
Update: 27/03/2017::
New Sample Code Which Works 🙂

/*
	::How this works::
	1. Checking if an invalid property exist in an object
	2. If parent window exist the return will be 'undefined'
	3. If parent window does not exist, an exception will be raised which we will catch
	4. This exception will tell us that the parent no loger exist thus parent got closed.
	Note: this check is run with a 1 sec delay to make sure the window object gets closed properly.
*/
	function detectRefresh(){
		try
		{
		  if(window.opener.title == undefined){
			isRefresh = true;
			document.write('Window was refreshed!');
		  }
		}
		catch(err)
		{
			isRefresh = false;
			document.write('Window was closed!');
		}	
	}