设置了cookie,但是刷新网页之后cookie就不见了,再次点击那个div块cookie又出现,刷新之后又消失。查看cookie的有效期为一个月

qq_37057166 2016-12-16 08:18:55
   /*closeTip();	*/
/*function $(id) {
return document.getElementById(id);
}*/
// 给element绑定一个针对event事件的响应,响应函数为listener
function addFuc(ele, event, listener) {
if (ele.addEventListener) {
ele.addEventListener(event, listener, false);
} else if (ele.attachEvent) {
ele.attachEvent("on" + event, listener);
} else {
ele["on" + event] = listener;
}
}

function setCookie(name, value, expiredays) {
var exp = new Date();
exp.setTime(exp.getTime() + expiredays * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
var test = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
console.log(test)
console.log(document.cookie);
}

function getCookie() {
//alert(4444);
var cookie = {};
var all = document.cookie;
console.log(all)
if (all === '') return cookie;
var list = all.split('; ');
for (var i = 0, len = list.length; i < len; i++) {
var item = list[i];
var p = item.indexOf('=');
var name = item.substring(0, p);
name = decodeURIComponent(name);
var value = item.substring(p + 1);
value = decodeURIComponent(value);
cookie[name] = value;
}
console.log(cookie);
return cookie;
}

// addLoadEvent函数
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}

function closeTip() {
//alert(111);
var tipClose = document.getElementById("close-tip");
addFuc(tipClose, "click", function() {
//alert(222)
hideTip();
setCookie("tipCookie", "tipCookieValue", 30);
});
}
addLoadEvent(closeTip);



//addLoadEvent(closeTip);
//加载页面前检查cookie
function checkCookie() {
//如果通知条tipCookie已设置,则不再显示通知条
if (getCookie().tipCookie) {
console.log(getCookie().tipCookie);
hideTip();
}
}
addFuc(window, "unbeforeunload", checkCookie());


// 隐藏通知条函数
function hideTip() {
var tip = document.getElementById("tip-div");
//console.log(tip);
tip.style.display = "none";
}


//closeTip();

    <div class="g-top">
<div class="m-topnav" id="tip-div">
<div class="container">
<p>
帮助你掌握专业技能,令你求职或加薪多一份独特优势
<a href="">立即查看></a>
</p>
<p class="close" id="close-tip">X 不再提醒</p>
</div>
</div>
...全文
2866 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2016-12-19
  • 打赏
  • 举报
回复
引用 2 楼 qq_37057166 的回复:
改了和没改在谷歌浏览器中都是不行诶,但是在火狐和safari下两种都可以,谷歌下的cookie设置是“允许设置本地数据”。在谷歌浏览器中打印document.cookie为空,但用字符串接收可以打印的出来。而火狐下都能打印出来,这是为什么呢?
谷歌要发布网站后通过http访问,否则要添加启动参数,你设置的是允许本地数据,按照这个设置:chrome无法保存本地设置cookie解决办法
qq_37057166 2016-12-19
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
[quote=引用 2 楼 qq_37057166 的回复:] 改了和没改在谷歌浏览器中都是不行诶,但是在火狐和safari下两种都可以,谷歌下的cookie设置是“允许设置本地数据”。在谷歌浏览器中打印document.cookie为空,但用字符串接收可以打印的出来。而火狐下都能打印出来,这是为什么呢?
谷歌要发布网站后通过http访问,否则要添加启动参数,你设置的是允许本地数据,按照这个设置:chrome无法保存本地设置cookie解决办法[/quote] 好的,谢谢
qq_37057166 2016-12-18
  • 打赏
  • 举报
回复
改了和没改在谷歌浏览器中都是不行诶,但是在火狐和safari下两种都可以,谷歌下的cookie设置是“允许设置本地数据”。在谷歌浏览器中打印document.cookie为空,但用字符串接收可以打印的出来。而火狐下都能打印出来,这是为什么呢?
Go 旅城通票 2016-12-16
  • 打赏
  • 举报
回复
事件用错,名称也传递错,而且事件绑定也有问题,是绑定函数,你是执行函数绑定返回值了
addFuc(window, "unbeforeunload", checkCookie());

//================》

addFuc(window, "load", checkCookie/*()*/);

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧