Solved: Detect browser or tab closing

Finally Solved :) the most unsolved question, 'How to Detect Browser or Tab Closing event' using JavaScript and jQuery by @ramojuraju

by Raj Kumar Ramoju

HTML

<div id="banner-message">
  <p>Hello World</p>
  <button>Change color</button>
</div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#banner-message {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#banner-message.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#banner-message.alt button {
  background: #fff;
  color: #000;
}

JavaScript

// find elements
var banner = $("#banner-message")
var button = $("button")

// handle click and add class
button.on("click", function(){
  banner.addClass("alt")
});

//Detect Browser or Tab Close Events
$(window).on('beforeunload',function(e) {
  e = e || window.event;
  var localStorageTime = localStorage.getItem('storagetime')
  if(localStorageTime!=null && localStorageTime!=undefined){
  	var currentTime 	= new Date().getTime(),
				timeDifference 	= currentTime - localStorageTime;
  	
    if(timeDifference<25){
     	//Browser Closed
      console.log('Browser Closed')
      localStorage.removeItem('storagetime')
    }else{
    	//Browser Tab Closed
      console.log('Browser Tab Closed');
      localStorage.setItem('storagetime',new Date().getTime());
    }
  
  }else{
  	localStorage.setItem('storagetime',new Date().getTime());
  }
})