У меня была похожая проблема с store.js, поэтому я решил использовать чистый localStorage и подход прослушивателя событий для реализации проблемы.
Вот рабочий JSFiddle: Обнаружение изменения localStorage на другой вкладке браузера
Объяснение:
Это использует API веб-хранилища.
Вы можете создать новую пару ключ-значение localStorage, используя вызов,
localStorage.setItem("current_tenant", "Tenant1");
Теперь, когда это хранилище изменяется, запускается StorageEvent
.Это событие отправляется только в другие окна.
StorageEvent запускается всякий раз, когда вносится изменение в объект Storage (обратите внимание, что это событие не запускается для изменений sessionStorage).Это не будет работать на той же странице, где вносятся изменения, - это действительно способ для других страниц в домене использовать хранилище для синхронизации любых внесенных изменений.Страницы других доменов не могут получить доступ к тем же объектам хранения.Источник: MDN Web Docs
Затем вы можете добавить прослушиватель событий в это хранилище и обнаруживать изменения, используя свойства событий oldValue
и newValue
Например,
Преобразовал ваш пример в JSFiddle и вот решение, которое сочетает в себе storeJS
и StorageEvent