2013-06-12 51 views
0

刪除cookie我試圖刪除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"; 
} 

感謝您的幫助。

+0

什麼確切地不工作,創建或刪除?你的createCookie()函數是怎樣的? – abimelex

+0

createCookie函數您擁有我的代碼。 正如我之前提到的:我嘗試刪除cookie並使用onClick事件以新的val = 1重新創建它。 – Petre

回答

0

你eraseCookie()函數看起來有點怪

嘗試這些可能:

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

+0

不,不工作。正如我之前所說:我點擊按鈕鏈接(與onclick事件),但cookie不會改變。 Val = 0. 它看起來像使用onClick事件不能更改cookie。可能嗎 ? – Petre

+0

你可以設置一個小提琴嗎?還有其他的按鈕嗎?你有沒有設置preventDefault屬性? – abimelex

+0

您可以在http://zabezpieczstrone.pl上找到所有內容。頁面底部的粉色div :) Akceptuj是按鈕(隱藏和創建cookie,val = 1)。 我注意到了什麼:debuger發現了這樣的事情:TypeError:document.cookie.split不是函數 – Petre

相關問題