Страницы

Поиск по вопросам

воскресенье, 15 декабря 2019 г.

Запрет открытия сайта более чем в одной вкладке

#javascript #html


Всем привет.

Задача: при открытии пользователем сайта во второй вкладке браузера, в первой вкладке
должно появиться сообщение о том, что открыта новая вкладка.

Есть ли возможность реализовать этот функционал с максимальной кроссбраузерностью?
    


Ответы

Ответ 1



ниже небольшая реализация. alert будет вызываться при каждом открытии нового табика. var currentTabId = parseInt(Math.random() * 1000); localStorage.setItem('currentTabId', currentTabId); setInterval(function () { var newTabId = localStorage.getItem('currentTabId'); if (currentTabId != newTabId) { alert('New tab'); currentTabId = newTabId; } }, 1000);

Ответ 2



Всем спасибо за наводки и примеры. Вот окончательное решение: window.session = revoke(5); localStorage.setItem("session", window.session); var onStorage = function (e) { if (e.key === 'session' && e.newValue !== window.session) localStorage.setItem("multitab", window.session); if (e.key === "multitab" && e.newValue && e.newValue !== window.session) { window.removeEventListener("storage", onStorage); localStorage.setItem("session", localStorage.getItem("multitab")); localStorage.removeItem("multitab"); alert("Новая вкладка"); } }; window.addEventListener('storage', onStorage); P.S. revoke(5) -- функция, которая генерирует ключ, с длиной 5.

Комментариев нет:

Отправить комментарий