Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Safari和Safari mobile上的Iframe localStorage_Javascript_Html_Iframe_Safari - Fatal编程技术网

Javascript Safari和Safari mobile上的Iframe localStorage

Javascript Safari和Safari mobile上的Iframe localStorage,javascript,html,iframe,safari,Javascript,Html,Iframe,Safari,我有一个javascript函数,它将在我的页面的iframe中执行,以设置本地存储。 在另一个页面上,托管在同一域上的另一个iframe将尝试读取该值。 下面是一个模式: Domain A |---- iframe - Domain B => Set localStorage Domain C |---- iframe - Domain B => Read localStorage 本地存储功能(读和写)都托管在同一个域(域B)上 在Safari和Safari mobi

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

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

Domain C
  |---- iframe - Domain B => Read localStorage
本地存储功能(读和写)都托管在同一个域(域B)上 在Safari和Safari mobile上,值不会从A页的iframe传输到C页的iframe。 它在Chrome和Firefox上运行良好。在Safari中,它的作用就像iframe的本地存储特定于顶级页面域,而不是跨页面传输,即使iframe域是相同的。
safari上的本地存储是否有人遇到同样的问题?

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

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

仅当用户将此选项设置为“从不”时,预期行为才可用,如下图所示:


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

是的,我在这里遇到了同样的问题。。是的,同样的问题,我想看一些文档,但没有发现任何漏洞。设置“来自第三方和广告商”时,有人知道如何在域之间共享本地存储数据吗?这不对。因为有像Disqs和facebook这样的网站在本地存储和cookie中设置了如此多的变量。一定有办法,为什么“cookies”是可访问的而不是“localStorage”?肯定是个bug,safari应该修复它。