Я тоже недавно занимался подобной штукой. Мне нужно было, чтобы скрипт работал только в одной вкладке. В общем, при открытии вкладки я открываю канал бродкаста (BroadcastChannel) и отсылаю сообщение e.g. "anybodyHere". Если ответа в течении секунды нет, то вкладка свободна, занимаем ее: создаем новое событие, которое слушает входящие сообщения по каналу бродкаста. Когда приходит сообщение "anybodyHere", то мы отвечаем e.g."tabBusy". Соответственно, те вкладки получают сообщение и отключаются. https://qna.habr.com/q/1133072