删除在函数外部工作的cookie,但在函数中不删除cookie
Delete cookie working outside the function but not when it is in
我试图删除cookie并设置新的一个从函数(内部cookie_approve),它不工作,但如果我把它放在函数之外,它删除cookie。
我的意思是:页面上有一个div。用户点击这个div中的按钮(onClick事件)。Cookie将被创建。当用户下次返回(或刷新站点)时,此div将不会出现。
这是我的代码:
//create cookie
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (10000 * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toUTCString();
} else var expires = "";
document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/";
}
//read cookie val
function readCookie(name) {
var nameEQ = escape(name) + "=";
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, c.length);
if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length, c.length));
}
return null;
}
//change cookie date
function eraseCookie()
{
document.cookie = 'cookie_approve=; expires='+new Date(0).toUTCString() +'; path=/';
}
//hide div after click, create cookie with val=1 for 7 days
function cookie_approve(){
eraseCookie();
createCookie("cookie_approve", 1, 7);
document.getElementById('cookie_show_info').style.display = "none";
}
if(readCookie("cookie_approve") == undefined){
createCookie("cookie_approve", 0, 7);
}
function show_cookie(){
document.getElementById('cookies_rules').style.display = "block";
}
function hide_cookie(){
document.getElementById('cookies_rules').style.display = "none";
}
document.write('<div id="cookie_show_info" style="display: none;">Text <div id="cookies_rules">Cookie rules</div> <a onClick="cookie_approve()">Button</a></div>');
if(readCookie("cookie_approve") == 0){
document.getElementById("cookie_show_info").style.display = "block";
}
谢谢你的帮助。
你的eraseCookie()函数看起来有点奇怪
try those maybe:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
来源:http://www.quirksmode.org/js/cookies.html
相关文章:
- 为什么没有用于cookie的内置JS函数
- 有人可以帮助我调试带有addClass和removeClass函数的“每个会话一次”cookie吗?
- 加载 cookie 后调用 JavaScript 函数
- Javascript Security:将敏感数据存储在比cookie更安全的自调用函数中
- 表达式'$的结果.cookie'[未定义]不是函数
- 为什么不'这行得通吗?它涉及cookie、函数和参数
- JQuery cookie 在其他函数中设置
- 使用函数setTimerOut和jquery Cookie的模型窗口
- HTML 从外部 JavaScript 文件触发函数并返回 cookie
- 重复/循环javascript函数来检查cookie是否已更改
- HTML 正文加载函数需要删除并使用 cookie 执行相同的函数,但只能进行第一次访问
- 为什么这个函数不读取和显示cookie
- 如果 cookie 匹配,则调用 JS 函数
- $.cookie('name') 不是一个函数
- 将Cookie添加到一个简单的函数中
- 通过javascript或jQuery对函数进行Cookie处理
- PHP/Javascript混合Cookie函数
- jQuery$.cookie不是函数
- 函数获胜't存储cookie
- 如何在Rails中重写简单的.js页面查看计数器cookie函数