#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.
Комментариев нет:
Отправить комментарий