Q1: Хранилище сеанса разделено вкладками, поэтому невозможно работать с sessionStorage страницы B со страницы A. НО вы можете использовать localStorage в качестве ссылки для управления чем-либо из каждой вкладки и окна. , просто умно используйте прослушиватель событий, подключенный к хранилищу.
window.addEventListener('storage', function(e) {
console.log(e + ' updated on localStorage');
// Code to modify sessionStorage here
});
Q2: Вам необходимо отслеживать, сколько открытых вкладок, так как это относительно просто, это может привести к ошибкам (закрытие всех вкладок сразу не вызовет очистку), вы необходимо прикрепить прослушиватель событий для события закрытия.
window.addEventListener('unload', function(e) {
console.log(e);
// Code to clear the storage
});