在浏览器上,Safari 的隐私浏览中的 sessionStorage 与 Chrome 的隐身模式和 Firefox 的隐私窗口不一样?

Posted

技术标签:

【中文标题】在浏览器上,Safari 的隐私浏览中的 sessionStorage 与 Chrome 的隐身模式和 Firefox 的隐私窗口不一样?【英文标题】:On a browser, sessionStorage in Safari's Private Browsing does not work the same as Chrome's Incognito Mode and Firefox's Private Window? 【发布时间】:2013-09-22 11:55:08 【问题描述】:

似乎对于sessionStorage,它在 Chrome 的隐身模式与 Safari 的隐私浏览和 Firefox 的隐私窗口上的工作方式不同?我可以在 http://www.webdirections.org/blog/webstorage-persistent-client-side-data-storage/ 上找到一些东西,但它并没有说 Safari 的隐私浏览会引发异常。

以下是我打开“私人浏览”的方式:

    在 Mac 上的 Safari 上,单击菜单栏上的“Safari -> 隐私浏览” 在 Chrome 上,使用“文件 -> 新建隐身窗口” 在 Firefox 上,使用“文件 -> 新建私人窗口”

在 Safari 上,sessionStorage 不起作用,如果我在控制台中执行以下操作:

> sessionStorage["foo"] = 123.4
Error: QUOTA_EXCEEDED_ERR: DOM Exception 22

> sessionStorage["foo"] 
undefined

但在 Chrome 或 Firefox 上,sessionStorage 照常工作(作为非隐私浏览)。就sessionStorage而言,以上是否准确?

【问题讨论】:

在相关说明中,如果您希望它的行为与其他浏览器一样,您可能需要向 Apple 提交有关此特定行为的错误/功能请求。但首先检查openradar.appspot.com/page/1 是否已提交,如果没有,则将错误提交给 Apple 并将副本提交给 OpenRadar 以供公众跟踪。不喜欢 Apple 如何不让所有人公开查看他们的错误跟踪器。 ts 2017 现在,隐私浏览模式(隐身)有什么变化 @NigelFds 看起来有。从 11.0.2 版开始,Safari 的隐私浏览现在与 Chrome 的 Incog 和 Firefox 的隐私浏览相同 - 存储可用。说它是否在选项卡之间持续存在无关紧要,因为 sessionStorage 仅适用于该选项卡。 【参考方案1】:

Safari Pivate 模式支持 localstorage 和 SessionStorage。

【讨论】:

【参考方案2】:

Safari 最新版本(12.0 版)已经可以访问 sessionStorage,在隐身模式下没有任何问题。

【讨论】:

【参考方案3】:

您的评估实际上是准确的:

Safari 在私有模式下只会使用0 的配额,因此所有设置值的尝试都会失败。根据spec,这还可以,因为规范没有规定最小空间要求。 Chrome 和 Firefox 仍然允许您使用存储,但是私有存储独立于非私有,即在私有模式下设置项目不会反射回非私有模式(仅对 localStorage 很重要)。李>

请注意,如果您超出配额,其他浏览器也可以在任何给定时间随意抛出 QuotaExceededError 异常。

【讨论】:

我遇到了同样的问题,并通过在我的布局上加载以下脚本来解决它:gist.github.com/engelfrost/fd707819658f72b42f55 >?它检查是否可以使用 localStorage,如果不能使用,它会创建一个以相同方式工作的替代方案。希望这会有所帮助 @BogdanMates 除非它不持久化任何使 localStorage 无用的东西。 @Esben Skov Pedersen,您希望数据在隐私浏览模式下保持多少?这会侵犯隐私 @KirillSlatin 它可能与 chrome incognito 中的 cookie 具有相同的语义。从一个干净的状态开始,并在会话关闭后删除。会话存储的工作方式与非隐私模式完全相同,不会侵犯隐私。 这个答案似乎不再适用于较新版本的 Safari。使用 Safari 进行私密浏览时,SessionStorage 似乎可以正常工作。

以上是关于在浏览器上,Safari 的隐私浏览中的 sessionStorage 与 Chrome 的隐身模式和 Firefox 的隐私窗口不一样?的主要内容,如果未能解决你的问题,请参考以下文章

UIWebView 和 sessionStorage 中的隐私浏览模式

在 iPhone 和 iPad 上使用 UIWebView 进行隐私浏览

iOS 12 Safari 的隐私/隐身模式检测

iPhone玩转safari浏览器的实用技巧

iOS Safari 未从第一次呈现完整页面

localStorage与sessionStorage在safari无痕模式下的情况