我有一个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上有没有人遇到与本地存储相同的问题?
答案 0 :(得分:14)
Safari的问题是由“阻止Cookie和其他网站数据”首选项引起的,默认设置为“来自第三方和广告客户”默认情况下强>
Safari 8上的更新,此选项为“Cookie和网站数据:允许我访问的网站”。
只有当用户将此选项设置为“从不”时,预期行为才可用,如下图所示:http://i.stack.imgur.com/AP4ed.png
不幸的是,不太可能存在漏洞 - 设置的目的很明确。