我有一个网站,如果设置了cookie,它不应该显示AD,cookie有效24小时。在浏览器,移动浏览器等方面一切正常,但如果用户在iOS上从Facebook App(客户端)打开我的网站的网址(无法在Android上探测它),则cookie可以正常工作,但每个网址都会生成,因此广告会在第一次加载每个页面时显示。它应该只是每次第一次在24小时内加载网站。
这再次发生在Facebook移动应用程序(据我所知iOS)。这是我生成cookie的代码。
// Cookie functions
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/; domain=.site.com;";
}
function checkCookie(cname) {
var cookie=getCookie(cname);
if (cookie) {
return true;
}else{
return false;
}
}
那么这种行为可能是什么原因?
答案 0 :(得分:0)
页面是通过Facebook App或Safari / Chrome直接在应用内浏览器中加载的吗?在遵循链接时,或者在每个&#34;第一个&#34;第一次打开(应用程序内)浏览器后的请求?
对我来说,以下适用于iOS Facebook App的应用内浏览器。第一次没有cookie。当我关闭浏览器并单击链接时,再次从时间轴/新进程中,并且第二次打开应用内浏览器,就会找到cookie。
<html>
<head>Test Cookies</head>
<script type="text/javascript">
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/;";
}
function checkCookie(cname) {
var cookie=getCookie(cname);
if (cookie) {
return 'yes, cookie! ' + cookie;
}else{
return 'no cookie';
}
}
</script>
<body>
<script type="text/javascript">document.write(checkCookie('test')); setCookie('test', 'value', 1); </script>
</body>
</html>