2016-03-22 52 views
0

我正在嘗試檢查多個Cookie以便彈出顯示或不顯示。我只有在檢查一個cookie而不是兩個時纔有效。如何檢查Javascript中的多個Cookie

$(window).load(function() { 

    var delay = 5000; // milliseconds 
    var cookie_expire = 30; // days (when to show visitor the popup again) 

    //only show popup if the user doesn't have a "hide" cookie set or "Login" cookie set 
    if (($.cookie('hide_popup') != "1" && window.innerWidth > "800") || ($.cookie('Login') == "null" && window.innerWidth > "800")) { 
    $("#popup").delay(delay).fadeIn("fast", function() { 

     $("#popup-signup").load("/popup-content.php", function() { 
     $("#popup-signup").fadeIn("fast", function() { 

     }); 
     }); 
    }); 
    //set the popup to not show again for the set period 
    $.cookie('hide_popup', '1', { 
     expires: cookie_expire, 
     path: '/' 
    }); 
    //close popuop function 
    $("#closepopup").live("click", function() { 

     //hide popup 
     $("#popup, #popup-signup").hide(); 


     $.cookie('hide_popup', '1', { 
     expires: cookie_expire, 
     path: '/' 
     }); 
    }); 
    } 
}); 

我想設置一個cookie並檢查一個已經被登錄設置的cookie。

+1

什麼過時的版本的jQuery你使用的「活」仍然支持?你爲什麼要比較一個數字和一個字符串? '「800」'不應該有引號。 '「null」'不等於'null' – epascarello

+0

這是我在網上找到的代碼。我不是一個在PHP上工作的JavaScript程序員,所以我足夠了解可以說是危險的。 –

+0

那麼jQuery代碼已經過時了,因爲在當前版本中'live'已被棄用和刪除。 – epascarello

回答

-1

如果你想,檢查一個cookie不存在,因爲我認爲你在這行正在做的:

if(($.cookie('hide_popup') != "1" && window.innerWidth > "800") || ($.cookie('Login') == "null" && window.innerWidth > "800")) 

你要做的:

if(($.cookie('hide_popup') != "1" && window.innerWidth > "800") || ($.cookie('Login') == null && window.innerWidth > "800")) 

在上面的代碼您檢查cookie的值是否爲字符串"null"而不是如果它是空值null

0

當你比較數字時,你不應該用引號括起數字。

當您與null比較時,不應將null用引號引起來。

if(($.cookie('hide_popup') != "1" && window.innerWidth > 800) || ($.cookie('Login') == null && window.innerWidth > 800)) 
{ 

的cookie檢查是好的,因爲它是一個字符串,以便"1"應該加引號。