2017-08-25 33 views
1

我對javascript的使用並不是很好,但是我有一個工作正常的工作,但它好像並沒有遵循我設置的6個月到期日期。有人可以幫助排除故障嗎?這是我設置cookie的有效日期時所具有的:javascript cookie上的6個月失效日期

expDate = new Date; 
// in the following line, 180 means 180 days. 
expDate.setTime(expDate.getTime() + 180 * 24 * 60 * 60 * 1000); 
expDate.toGMTString(); 

function setCookie(name, value, expires, path, domain, secure){ 

document.cookie= name + "=" + escape(value) + 
((expires) ? "; expires=" + expires.toGMTString() : "") + 
((path) ? "; path=" + path : "") + 
((domain) ? "; domain=" + domain : "") + 
((secure) ? "; secure" : ""); 
} 

function getCookie(name){........ 

任何幫助故障排除都是完美的,非常感謝!

更新 - 這裏是整個腳本。我只打電話給一個彈出式窗口來顯示是否有3次頁面訪問,20%和6個月到期日期。把它拼在一起,讓我輕鬆點!

expDate = new Date; 
// in the following line, 180 means 180 days. 
expDate.setTime(expDate.getTime() + 180 * 24 * 60 * 60 * 1000); 
expDate.toGMTString(); 

function setCookie(name, value, expires, path, domain, secure){ 

document.cookie= name + "=" + escape(value) + 
((expires) ? "; expires=" + expires.toGMTString() : "") + 
((path) ? "; path=" + path : "") + 
((domain) ? "; domain=" + domain : "") + 
((secure) ? "; secure" : ""); 
} 

function getCookie(name){ 

var dc = document.cookie; 
var prefix = name + "="; 
var begin = dc.indexOf("; " + prefix); 
if (begin == -1){ 
begin = dc.indexOf(prefix); 
if (begin != 0) return null;} 
else{begin += 2;} 
var end = document.cookie.indexOf(";", begin); 
if (end == -1){end = dc.length;} 
return unescape(dc.substring(begin + prefix.length, end)); 
} 


    visits = getCookie('nVisits'); 
    if (!visits) { 
     visits = 1 
    }; 
    if (visits == 3) 
    if ((Math.random() * (100 - 1) + 1) < 20) 
    { 
     window.open("https://mypoup.html", "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400"); 
    } 
    if (visits < 3) { 
     ++visits; 
     cookieData = visits; 
     setCookie('nVisits', cookieData, expDate) 
    } 
+0

你在哪裏調用setCookie函數?並傳遞了什麼參數?另外,如果你使用了'expDate.toGMTString()',那麼在'expires'參數中傳遞'expDate',那麼爲什麼你需要做'expires.toGMTString()'? – Claies

+0

似乎'toGMTString()'已經過時了,不應該再使用了,而是使用'toUTCString()'。也許就是這樣。順便說一下,當你檢查它時,你的瀏覽器對你的cookie有什麼看法? (編輯:是的,最好告訴我們在代碼中調用setCookie) – Kaddath

回答

0

這是正確的答案。謝謝!

它似乎toGMTString()已過時,不應再使用,而是使用toUTCString()。也許就是這樣。順便說一下,當你檢查它時,你的瀏覽器對你的cookie有什麼看法? (編輯:是的,最好向我們展示setCookie在代碼中的調用) - Kaddath 2天前