Я не знаю, насколько это будет полезно.
Однако ваша проблема выглядит скорее задачей браузера, чем задачей страницы.Если вы хотите реализовать общее решение на стороне клиента, вы можете написать, например, расширение chrome.
В API chrome.tabs.*
есть все функции, необходимые для определения, когда страница загружена, активна, выбрана илизакрыто.
onCreated
chrome.tabs.onCreated.addListener(function(Tab tab) {...}));
Запускается при создании вкладки.
onRemoved
chrome.tabs.onRemoved.addListener(function(integer tabId, object removeInfo) {...}));
Запускается при закрытии вкладки.
onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(function(integer tabId, object selectInfo) {...}));
Запускается при изменении выбранной вкладки в окне.