我有一个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上遇到本地存储的同样问题?
Safari的问题是由" 阻止cookie和其他网站数据 "偏好引起的,默认设置为" 来自第三方和广告商 " .
更新:在Safari 8上,此选项是"Cookie和网站数据:允许来自我访问的网站 ".
只有当用户将此选项设置为"从不"时,才能使用预期的行为,如下图所示:http://i.stack.imgur.com/AP4ed.png
不幸的是,不太可能存在漏洞 - 设置的意图很明确.