2016-03-22 23 views
0

Ich versuche, mehr als einen Cookie zu überprüfen, um eine Pop-up-Anzeige zu haben oder nicht anzuzeigen. Was ich habe, funktioniert nur, wenn ich nach einem Cookie suche, aber nicht nach beiden.Wie Sie mehrere Cookies in Javascript überprüfen

$(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: '/' 
     }); 
    }); 
    } 
}); 

Ich versuche, ein Cookie zu setzen und für einen Cookie überprüfen bereits von der Anmeldung festgelegt werden.

+1

Welche veraltete Version von jQuery verwenden Sie, die 'live' noch unterstützt wird? Warum vergleichen Sie eine Zahl mit einer Zeichenfolge? '" 800 "' sollte keine Anführungszeichen haben. '" null "' ist nicht gleich "null" – epascarello

+0

Es ist ein Code, den ich online gefunden habe. Ich bin kein JavaScript-Programmierer Ich arbeite an PHP, also verstehe ich genug, um so gefährlich zu sein. –

+0

Nun, der jQuery-Code ist veraltet, da 'live' in den aktuellen Versionen veraltet und entfernt wurde. – epascarello

Antwort

-1

Wenn Sie überprüfen möchten, ob ein Cookie existiert nicht, wie ich glaube, Sie in dieser Linie tun:

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

Sie zu tun haben:

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

Im oberen Code Sie überprüfen, ob der Wert des Cookies die Zeichenfolge "null" ist und nicht, wenn es sich um den leeren Wert null handelt.

0

Wenn Sie Zahlen vergleichen, sollten Sie eine Zahl nicht in Anführungszeichen setzen.

Wenn Sie mit null vergleichen, sollten Sie NULL nicht in Anführungszeichen einschließen.

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

Das Cookie-Check ist in Ordnung, da es sich um eine Zeichenfolge ist, so dass "1" in Anführungszeichen gesetzt werden sollte.