The JS script presented in this page can be used to execute a JavaScript function when the page visibility state changes (when it is opened another window, or focus again this page); the function is whenVisChg(), see the comments in code.
Script code - click to select it
<script>
//JS code from: https://coursesweb.net/javascript/
// Defines a handler for page visibility changes
var vis_chg = (function(){
var stateKey, eventKey, keys = {
hidden: 'visibilitychange',
webkitHidden: 'webkitvisibilitychange',
mozHidden: 'mozvisibilitychange',
msHidden: 'msvisibilitychange'
};
for(stateKey in keys){
if(stateKey in document){
eventKey = keys[stateKey];
break;
}
}
return function(c){
if(c){
document.addEventListener(eventKey, c);
//document.addEventListener('focus', c); //for when focus again this page
}
return !document[stateKey];
}
})();
// Gives the initial state
var page_vstate = vis_chg() ?'visible' :'not-visible';
vis_chg(function(){
var re_vchg = vis_chg(); //FALSE=leaves the page; TRUE=re-enter in page
console.log(new Date, 'vis_chg: ', re_vchg); //for debug in console
page_vstate = re_vchg ?'visible' : whenVisChg();
});
//This function is executed when the page changes visibility state
function whenVisChg(){
document.title ='not-visible'; //changes page title in browser
//HERE you can set your code
alert('page visibility state changed');
return 'not-visible';
}
</script>
- To test the script, click on , or just open a new tab /window in your browser. The Title of this page in browser will be changed and an alert message box will be displayed on this page.