写一个方法监听localStorage的变化

在前端开发中,监听 localStorage 的变化通常涉及到使用 window 对象的 storage 事件。这个事件会在同一来源的其他页面修改 localStorage 时触发。请注意,它不会在当前页面自身修改 localStorage 时触发。

以下是一个简单的示例,展示了如何编写一个方法来监听 localStorage 的变化:

function listenToLocalStorageChanges(callback) {
  // 检查 callback 是否为函数
  if (typeof callback !== 'function') {
    console.error('Provided callback is not a function.');
    return;
  }

  // 监听 storage 事件
  window.addEventListener('storage', function(event) {
    // event.key 是被修改或删除的键名
    // event.newValue 是新的值(如果是删除操作,则为 null)
    // event.oldValue 是旧的值(如果是新增操作,则为 null)
    // event.storageArea 是被修改的 Storage 对象(通常是 localStorage)
    // event.url 是触发这个变化的页面的 URL

    callback(event.key, event.newValue, event.oldValue, event.url);
  });
}

// 使用示例
listenToLocalStorageChanges(function(key, newValue, oldValue, url) {
  console.log('Key:', key);
  console.log('New Value:', newValue);
  console.log('Old Value:', oldValue);
  console.log('URL:', url);
});

在这个示例中,listenToLocalStorageChanges 函数接受一个回调函数作为参数。当 localStorage 发生变化时,这个回调函数会被调用,并接收到变化的相关信息(如键名、新值、旧值和触发变化的页面的 URL)。

请注意,由于 storage 事件不会在当前页面自身修改 localStorage 时触发,因此如果你想在当前页面也监听到变化,你可能需要在修改 localStorage 的同时手动触发一些逻辑。

posted @   王铁柱6  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示