Safari(8+)默认情况下不允许从第三方读取和存储数据。 Cookie的设置是:"允许我访问的网站"。
我读了一些为此问题编写解决方案的用户..
此问题的解释见:
http://measurablewins.gregjxn.com/2014_02_01_archive.html
这是我使用的功能:
window.onload=function(){
if(navigator.userAgent.indexOf('Safari')!=-1 &&
navigator.userAgent.indexOf('Chrome')==-1){
var cookies=document.cookie;
if(top.location!=document.location){
if(!cookies){
href=document.location.href;
href=(href.indexOf('?')==-1)?href+'?':href+'&';
top.location.href = href+'reref='+encodeURIComponent(document.referrer);
}
} else {
ts=new Date().getTime();document.cookie='ts='+ts;
rerefidx=document.location.href.indexOf('reref=');
if(rerefidx!=-1){
href=decodeURIComponent(document.location.href.substr(rerefidx+6));
window.location.replace(href);
}
}
}
}
调用该函数并按预期运行。
如果其他域是X,其中包含来自我的域Y的iframe,
当我访问X时,我在" Storage"中看不到我的域名。 Safari上的标签(虽然有重定向到我的域名并返回给参考者)。
所以我没有成功获取在我的域名中找到的cookie(来自域Y)。
不会重定向并重新启用此第三方吗? (我的域名)。