我在我的(Windows)计算机上使用多个带有 JavaScript 的 HTML 页面来收集和分析数据。所有文件均在本地提供,无需互联网,例如
file:///C:/work1/data1.html
。
我发现 Chrome(和 Edge)和 Firefox 之间存在以下令人惊讶的差异。
localStorage
的键由每个文件“拥有”从某个页面存储的数据可以在 Chrome 和 Edge 中从任何其他页面自由访问,甚至可以同时访问。带有
window.localStorage.setItem('key', 'value')
的数据集可以通过 window.localStorage.getItem('key')
在当前和本地存储在同一计算机或设备上的任何其他 .html 文件中读取。
相反,在 Firefox 中,某个文件中的数据集(例如 data-1.html)只能从该文件访问。更改文件夹或文件名和数据已经不复存在,因为 Firefox 分别为每个文件存储一组单独的键值。
即我可以让 Chrome 像 Firefox 一样运行,和/或 Firefox 像 Chrome 一样运行吗?
回答您的问题。
选择你的答案:“天知道”、“因为 Mozilla 开发人员决定如此”?
每个定义和每个逻辑值应该在文件之间共享:
为什么 Firefox 会有差异?嗯...去 Mozilla 问问他们。不要指望切肉刀的答案。
我认为这是基于意见的问题,不会改变这里的任何内容。你还没有发现绝密秘密,你还没有开始新的阴谋论。或者类似的事情,当然。
你知道这一点,我知道这一点,许多 Mozilla 开发人员可能都知道这一点(前提是这不是一个愚蠢的错误,但我不相信如此)并且可能有成千上万的人也知道这一点了解这个。
我认为这是一个“众所周知”的事实,无论它对你意味着什么。
不,不是真的。
您可以切换到 Firefox 浏览器的 sessionStorage,这似乎可以在文件之间共享。
您可以尝试使用像 xdLocalStorage 这样的库进行实验。这个特殊的已经七年没有更新了,对我个人来说根本不起作用(抛出一些奇怪的错误)。但也许你可以让它发挥作用。
我们不应该在这里发表意见,但我会破例。对我来说,Firefox 是一个有点奇怪的浏览器。由于多种原因,我大约 20 多年前就停止使用它了。你(和我)刚刚发现的这个东西只是另一个例子。
作为开发人员,您能做的事情并不多。 Firefox 的行为显然是常见规则和逻辑的例外,因此继续使用此浏览器的用户必须接受这样的事实:您的页面无法在他们的浏览器中正常工作。阿门。