首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >观察js中的本地存储更改

观察js中的本地存储更改
EN

Stack Overflow用户
提问于 2018-06-09 03:26:43
回答 3查看 19.1K关注 0票数 11

我有一个单页面的应用程序,在其中我需要对本地存储中的每个更改做出反应,它看起来像这样:

代码语言:javascript
复制
    MyComponent {
    
    someFuncWhichIsCalledEveryTimeWhenLocalStorageChanges() {
        console.log('local storage changed!);
    }
    
    funcThatChangesLocalStorage() {
        localstorage.setItem('key',val);
        localstorage.getItem('key')
    }
    
    }

我尝试使用localstorage事件:

代码语言:javascript
复制
window.addEventListener('storage', function(event){
       ...
});

但那并不管用。所以我在考虑使用Observable<>,只是不知道如何正确地实现它。

EN

回答 3

Stack Overflow用户

发布于 2018-06-09 05:01:46

window.addEventListener('storage', ...) works

确保您使用的是正确的event properties

Here is a basic example of the event listener.

票数 2
EN

Stack Overflow用户

发布于 2019-04-08 11:58:04

当在另一个文档的上下文中修改存储区域(localStorage或sessionStorage)时,将触发存储事件。

https://developer.mozilla.org/en-US/docs/Web/Events/storage

票数 0
EN

Stack Overflow用户

发布于 2021-05-20 22:42:48

如果您想在同一文档中监听存储更改事件,可以添加一个存储更改事件发送函数,如下所示。当您使用localStorage.setItem("xx","xx"),并在它之后触发此函数时,会检测到事件~

代码语言:javascript
复制
export function emitStorageChangedEvent() {
  const iframeEl = document.createElement("iframe");
  iframeEl.style.display = "none";
  document.body.appendChild(iframeEl);

  iframeEl.contentWindow?.localStorage.setItem("t", Date.now().toString());
  iframeEl.remove();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50767241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档