Safari和Safari移动设备上的iframe localStorage

时间:2013-12-05 13:50:36

标签: javascript html iframe safari

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

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

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

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

1 个答案:

答案 0 :(得分:14)

Safari的问题是由“阻止Cookie和其他网站数据”首选项引起的,默认设置为“来自第三方和广告客户默认情况下

Safari 8上的

更新,此选项为“Cookie和网站数据:允许我访问的网站”。

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

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