【问题标题】:Iframe localStorage on Safari and Safari mobileSafari 和 Safari 移动设备上的 iframe localStorage
【发布时间】:2013-12-22 11:55:38
【问题描述】:

我有一个 javascript 函数,它将在我的页面的 iframe 中执行以设置本地存储。 在另一个页面上,托管在同一域上的另一个 iframe 将尝试读取该值。 下面的架构:

Domain A
  |---- iframe - Domain B => Set localStorage

Domain C
  |---- iframe - Domain B => Read localStorage

localStorage 函数(读取和写入)都托管在同一个域(域 B)上 在 Safari 和 Safari mobile 上,该值不会从页面 A 中的 iframe 传输到页面 C 中的 iframe。 它在 Chrome 和 Firefox 上运行良好。在 Safari 中,它的作用就好像 iframe 的 localStorage 特定于首页域而不是跨页面传输,即使 iframe 域相同。 有人在 safari 上的本地存储遇到同样的问题吗?

【问题讨论】:

  • 是的,我在这里遇到了同样的问题..
  • 是的,同样的问题,我想查看一些文档,但没有找到任何文档

标签: javascript html iframe safari


【解决方案1】:

Safari 的问题是由“阻止 cookie 和其他网站数据”首选项引起的,该首选项默认设置为“来自第三方和广告商

更新:在 Safari 8 上,此选项为“Cookie 和网站数据:允许来自我访问的网站”。

只有当用户将此选项设置为“从不”时,预期的行为才可用,如下图所示:http://i.stack.imgur.com/AP4ed.png

不幸的是,这不太可能存在漏洞 - 设置的意图很明确。

【讨论】:

  • 在设置“来自第三方和广告商”时,有人知道如何在域之间共享 localStorage 数据吗?
  • 这不对。因为有些网站像 disqus 和 facebook 之类的按钮在 localstorage 和 cookie 中设置了很多变量。一定有办法,
  • 为什么不能访问“cookies”而不是“localStorage”?绝对是一个错误,Safari 应该修复它。
猜你喜欢
  • 2020-06-14
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 2021-01-03
  • 1970-01-01
  • 2013-02-21
相关资源
最近更新 更多