无法跨选项卡查看本地存储事件

2023-12-14

我正在尝试创建一个简单的概念验证,涉及在发生更改时使用 localStorage 在我的应用程序中触发选项卡。根据我看过的其他文章,我知道这是可能的。我明白the spec声明该事件将在每个页面上触发except我现在使用的那个 - 这实际上就是我想要的。但是,我似乎无法让这个简单的演示真正发挥作用。

我获取了下面的代码,并打开了它的多个选项卡。使用我的 Chrome 开发工具,我可以在控制台中检查 >localStorage,并查看按下“添加”和“清除”按钮之前和之后的值 - 实际上,它们在将键值对存储和清除到本地时按需要发挥作用存储,但事件并未触发警报。

我什至在每个选项卡的 Chrome 开发工具中的 javascript 中放置了断点,但我似乎永远无法在打开的任何选项卡中命中“onStorageEvent”函数。

我究竟做错了什么?

<!DOCTYPE html>
<html>

<head>
  <title>Tab1</title>
</head>

<body>
  <button id="add" onclick="localStorage.setItem('tab','changed')">Add</button>
  <button id="clear" onclick="localStorage.clear()">Clear</button>
  <script type="text/javascript">
    function onStorageEvent() {
      alert("storage event: " + localStorage.getItem("tab"));
    }

    window.addEventListener('storage', onStorageEvent, false);
  </script>
</body>

</html>

为了window.addEventListener致力于storage:

  1. you MUST使用网络服务器访问页面(http://a.b.c.d/ or http://domain)

    • 直接访问(使用file:/// or c:\file.html will not work.
      (chrome和ie忽略它,firefox和safari无论如何都可以运行它)。
  2. 我会考虑删除第三个,它与你的元素无关DOM树,这可能会引起麻烦(让浏览器使用默认值)。

此代码在 Chrome 52、Firefox 47+48、IE 11、Safari 5.7.1 中测试

<!DOCTYPE html>
<html>

<head>
  <title>Tab1</title>
</head>

<body>
  <button id="add" onclick="localStorage.setItem('tab','changed')">Add</button>
  <button id="clear" onclick="localStorage.clear()">Clear</button>
  <script type="text/javascript">
    function onStorageEvent() {
      alert("storage event: " + localStorage.getItem("tab"));
    }

    window.addEventListener('storage', onStorageEvent);
  </script>
</body>

</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法跨选项卡查看本地存储事件 的相关文章

随机推荐

  • 应用程序处于后台模式时的文本到语音功能?

    我正在研究一个TextToSpeech应用程序 我在一篇文章中写了一段UITextField 然后我按Speak按钮 声音根据写入的文本播放UITextField 但是 当应用程序处于后台模式时 音频将停止播放 如何在后台模式下继续播放声音
  • Angularjs如何上传多部分表单数据和文件?

    我是 angular js 的初学者 但我很好地掌握了基础知识 我想要做的是将文件和一些表单数据作为多部分表单数据上传 我读到这不是 Angular 的功能 但是第 3 方库可以完成此任务 我已经通过 git 克隆了 Angular fil
  • 在循环中为 Tkinter Entry 小部件创建 StringVar 变量

    我有一个小脚本 可以生成随机数量的条目小部件 每个都需要一个 StringVar 以便我可以将文本分配给小部件 由于我无法提前知道会有多少个 因此如何将它们创建为循环的一部分 from Tkinter import import rando
  • Pygame 应用程序中的 SVG 渲染。在 Pygame 2.0 之前,Pygame 不支持 SVG。那你是怎么加载的呢?

    In a Pygame应用程序中 我想渲染 SVG 中描述的无分辨率 GUI 小部件 我怎样才能实现这个目标 我喜欢OCEMP图形用户界面工具包 但它的渲染似乎依赖于位图 这是一个完整的例子 结合了其他人的提示 它应该从当前目录渲染一个名为
  • 如何将 TextView 文本颜色设置为特定主题颜色

    我尝试学习 Android 主题 但在设置主题时遇到了麻烦TextViewTextColor 为另一种颜色 然后是全局的
  • Delphi:Char 和 TCharArray“不兼容类型”数组

    我在下面的评论中遇到过几次 不兼容的类型 错误 并且一直对为什么 Delphi 2007 不直接支持此错误感到满意 program Project1 APPTYPE CONSOLE type TCharArray array of Char
  • 查找图像的方向

    我正在使用 OpenCv 进行模式匹配 我有一个模型 我将目标与函数 cvMatchShapes 进行比较 它有效 但我想知道目标的方向 我该怎么做 例如 边界旋转矩形是否适合轮廓方向相差 180 度的情况 解决问题的另一种方法是计算轮廓矩
  • 从另一个文件获取变量 - python

    我正在创建一个 Tkinter 程序 允许用户在一个漂亮的框中输入文本 而不是在 python shell 中 因为我想在多个程序中使用它 所以我将其制作成一个可以在其他文件中使用的函数 我可以让它在另一个文件中运行 但不能导入变量 这是我
  • PHP中相对路径还是绝对路径以及如何设置

    我正在开发一个网站 我正在尝试访问该网站的主目录 但我不知道如何进行设置 我想做的是包括 inc config php通过 inc config php而不必使用 inc config php有什么想法如何添加这个吗 一般来说 处理路径时需
  • OpenXML 从 Excel 创建数据表 - 货币单元格值不正确

    我正在尝试使用 OpenXML 从 Excel 电子表格创建数据表 使用 Cell CellValue innerXml 获取行的单元格值时 为用户输入的货币值返回的值 在电子表格上可见 与解释的值不同 电子表格单元格格式为文本 单元格值为
  • 在 iOS 10+ 中,有什么方法可以可靠地唤醒应用程序

    我已经这样做了三个多月了 我的头发都被拔掉了 所以请不要回复初学者的答案 我想知道 在 2017 年的 iOS 10 中 是否有任何方法可以将应用程序从终止状态唤醒 最好是通过蓝牙外围设备 但我会采取我能得到的 我认为终止的时间是用户在任务
  • 如何比较签名和未签名(并避免问题)

    最近我听说 C 中的有符号 无符号比较可能很棘手 例如 有符号 无符号比较还有其他一些问题 我的问题是 如果我们必须将有符号类型与无符号类型进行比较 例如 包括 gt 存在哪些策略可以避免这种比较产生的问题 或者我们应该确保我们总是只比较i
  • Magento 价格格式 - 2 或 3 位小数

    我需要将某些商品的价格设置为小数点后 3 位 我通过将 精度 变量更改为 3 来实现此目的 但这意味着网站上的每个价格都显示为小数点后 3 位 即 空购物车显示为 0 000 英镑 我只想在需要时显示小数点后第三位 但我不确定在代码库中哪里
  • 创建/追加节点与innerHTML

    有人有充分的理由使用其中一种而不是另一种吗 据我所知 创建 附加节点只是防止您创建无效代码 而innerHTML允许您一次注入多个节点 考虑到我需要插入几个标签 使用innerHTML似乎是有意义的 有人有不同的看法吗 这始终是一个有争议的
  • SaveMany 在 cakePHP 中同时更新多条记录不起作用

    我面临着使用 saveMany 同时更新多个记录的问题 我有如下关联 候选人hasMany候选人雇主 候选人雇主属于候选人 Candidate php 中的模型关联 public hasMany array CandidatesEmploy
  • 按顺序生成数字 Order

    我想生成由支票中输入的位置搜索的值 例如 如果输入 20 则函数应生成从 0 开始的数字 并继续按升序排列 直到创建 20 位数字 然后输出生成的数字字符串中第 20 位的值 01234567891011121314 即 4 我在下面尝试了
  • 主题已在云发布/订阅上创建,但无法创建该主题的监视

    我想在云发布 订阅主题上创建监视 但无法创建它 为此 我正在使用其余请求 request Req post url https www googleapis com gmail v1 users me watch headers conte
  • MapView Pin 注释的问题 - 当地图缩放/平移/区域更改时 Pin 会失去颜色

    我有一个显示现金点位置的地图视图 注释将被删除 并且可以单击标注以转到包含有关该位置的更多详细信息的页面 提款机分为免费和付费两类 免费提款机的针脚为绿色 另一种为红色 当别针掉落时 它们的颜色是正确的 一切正常 直到我缩放到用户位置或地图
  • 如何删除子列表

    如何从列表中删除所有出现的子列表 例如 List 1 2 3 4 5 6 7 4 8 9 10 5 removeSubList 4 5 应该删除所有出现的 4 5 按此顺序 因此它返回 List 1 2 3 6 7 4 8 9 10 5 使
  • 无法跨选项卡查看本地存储事件

    我正在尝试创建一个简单的概念验证 涉及在发生更改时使用 localStorage 在我的应用程序中触发选项卡 根据我看过的其他文章 我知道这是可能的 我明白the spec声明该事件将在每个页面上触发except我现在使用的那个 这实际上就