我有這段代碼,我用它來向用戶展示只有當他們以前沒有看到它時才彈出的facebook。代碼是非常簡單的,去如下:加載cookie後調用JavaScript函數
function setCookie(cname, cvalue, exdays) {
var now = new Date();
var time = now.getTime();
var expireTime = time + 1*36000;
now.setTime(expireTime);
document.cookie = 'seen_fb_like=true;cookie=ok;expires='+now.toGMTString()+';path=/';
}
function getCookie(cname) {
var value = "; " + document.cookie;
var parts = value.split("; " + cname + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
window.onload = function() {
var seen = getCookie("seen_fb_like");
if(!seen) {
document.getElementById('popup-container').style.display = ("block");
setCookie();
}
}
我的本地機器驗證碼擔任希望在
,但將它部署到我的服務器後,我看到每一個現在,比我看到彈出看到它幾後甚至幾秒鐘前。我認爲這可能是因爲有時window.onload
函數是在加載cookie之前執行的,但是我找不到任何文檔來表示同意......任何想法我該如何處理這個問題?
「我認爲這是因爲有時window.onload函數在加載cookie之前執行」 - 不,不會發生。 – Quentin
從cookie中刪除路徑。如果您導航出該路徑,那麼cookie將不再存在。如果路徑不存在,那麼它將被讀取爲整個域。 – Archer
打印cookie的值?也許它沒有被設置或在某個地方被改變? – NickSlash