function setCookie(){
if (navigator.userAgent.indexOf('Safari') != -1 &&
navigator.userAgent.indexOf('Chrome') == -1){
window.open('safari.php','','width=200,height=100');
}
}
// then we set the cookie in safari.php
来源:七月http://www.reizbombardement.de/archives/safari-5-1-4-enforces-cookie-policy
// UPDATE 23 2013
固定用于工作,直到Safari浏览器6
请参阅@Fabio安栋梁这个问题的这种蹩脚的方式@ncubica下面的评论。
// UPDATE 2013年7月23日由法比奥·安图内斯
这里是我的代码
在着陆页,我们将有关于应用程序和一个按钮,说像“输入”的简要说明。我正在使用jquery来简化这个过程,为click事件创建一个监听器,我只是把JavaScript代码放在里面,因为我假设你已经有了着陆页的其他html代码:
$(document).on("click", "#bt-landing", function(){
var left = (screen.width/2)-(500/2);
var top = (screen.height/2)-(250/2);
window.open('URL_FOR_THE_PHP_THAT_WILL_CREATE_THE_SESSION', '_blank', 'width=500,height=250,toolbar=0,location=0,menubar=0, top='+top+', left='+left);
});
这将打开一个小窗口,以500 x 250像素为中心,显示在屏幕上。
我有一个小窗口中的代码是这样的:
<?php setcookie("safari_cookie", "1");?>
<html>
<head>
<meta charset="utf-8">
<title>THE NAME OF YOUR APP OR SOMETHING THAT THE USER WE'LL READ AND ASSUME THAT THIS SMALL WINDOW IS RELIABLE</title>
</head>
<body>
<script type="text/javascript">
$(document).ready(function(){
setTimeout(function(){window.close()},1000);
})
</script>
</body>
</html
我刚刚设置为阻止第三方cookie(Win7 Safari),并且SharedObject不能正常工作。我会得到一些痕迹并尽快更新这篇文章。 – 2012-07-24 17:16:45
有趣的是,该设置不是默认的,但对吗?此外,阻止访问共享对象的另一件事是“私人”或“隐身”浏览(浏览器仅在该特定会话中保留Cookie)。 Chrome有这样做的选项。 – 2012-07-24 18:20:55
我应该在我自己的浏览器(Safari 5.1.7,Mac)中进行检查:在首选项中的隐私选项卡上,“阻止Cookie”设置设置为阻止来自第三方和广告商的Cookie。这是默认值(我认为我没有改变它)。但在我的情况下,访问SharedObject在阻止第三方cookie时工作得很好。 – 2012-07-24 18:25:34