2017-07-14 3 views
-1

Wenn usser das Popup über closeBtn geschlossen hat, zeige es bis morgen nicht wieder. Und wenn es möglich ist, Popup nach 2 besuchten Seiten anzuzeigen. Das setTimeout für den Start ist in Ordnung.set cookie, wenn Benutzer die closeBtn drückt

jQuery(function ($) { 
    var check_cookie = $.cookie('newsletter_popup'); 
    if (check_cookie == null || check_cookie == 'shown') { 
     setTimeout("beginNewsletterForm()", 120000); 
    } 

    $('#newsletter_popup_dont_show_again').on('change', function() { 
     if ($(this).length) { 
      var check_cookie = $.cookie('newsletter_popup'); 
      if (check_cookie == null || check_cookie == 'shown') { 
       $.cookie('newsletter_popup', 'dontshowitagain'); 
      } 
      else { 
       $.cookie('newsletter_popup', 'shown'); 
       setTimeout("beginNewsletterForm()", 120000); 
      } 
     } else { 
      $.cookie('newsletter_popup', 'shown'); 
     } 
    }); 
}); 

function beginNewsletterForm() { 
    jQuery.fancybox({ 
     'padding': '0px', 
     'autoScale': true, 
     'transitionIn': 'fade', 
     'transitionOut': 'fade', 
     'type': 'inline', 
     'href': '#newsletter_popup', 
     'onComplete': function() { 
      $.cookie('newsletter_popup', 'shown'); 
     }, 
     'tpl': { 
      closeBtn: '<a title="Close" class="fancybox-item fancybox-close fancybox-newsletter-close" href="javascript:;"></a>' 
     } 
    }); 
    jQuery('#newsletter_popup').trigger('click'); 
} 

Antwort

0

Sie können eine Funktion in JavaScript machen, der überprüft, ob Sie bereits Ihre Popup-Meldung angezeigt oder nicht zusammen mit der getCookie Funktion und setCookie

//execute this function when your document loads 
popupChecker(); 

function popupChecker() 
{ 
    if(getCookie("popup") != "true") 
    { 
     //show pop up 
    } 
} 

//chage closeBtnId with your close btn ID 

$("closeBtnId").click() 
{ 
    //set cookie that expires in 1 day 
    setCookie("popup", "true", 1); 
} 

Dies ist die Funktion für get und eine Reihe von Cookies einfügen dies zu Ihrer .JS-Datei oder einfach eine neue CLASS of Cookie für saubere Codes erstellen.

function setCookie(cname, cvalue, exdays) 
{ 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); 
    var expires = "expires="+d.toUTCString(); 
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 
} 


function getCookie(cname) 
{ 
    var name = cname + "="; 
    var decodedCookie = decodeURIComponent(document.cookie); 
    var ca = decodedCookie.split(';'); 
    for(var i = 0; i <ca.length; i++) 
    { 
    var c = ca[i]; 
    while (c.charAt(0) == ' ') 
    { 
     c = c.substring(1); 
    } 
    if (c.indexOf(name) == 0) 
    { 
     return c.substring(name.length, c.length); 
    } 
    } 
return ""; 
} 

Was meinst du in "Und wenn es möglich ist, Popup nach 2 besuchten Seiten zu zeigen"? nach meinem Verständnis wollen Sie überprüfen, ob der Benutzer bereits zweimal auf Ihrer Seite besucht hat? und wenn ja? Sie möchten die Popup-Nachricht anzeigen. also ändere ich einfach den popChecker und das click-event von closeBtn.

function popupChecker() 
{ 
    if(getCookie("popup") == "true") 
    { 
     //check if visit count is equals to 2 
    if(getCookie("visit_count") == "2") 
    { 
     //show pop up 
    } 

    }else 
    { 
     //show pop up and add 1 to visit_count cookie 
     var visitCount = getCookie("visit_count"); 
     setCookie("visit_count", visitCount + 1, 1); 
    } 
} 

//chage closeBtnId with your close btn ID 

$("closeBtnId").click() 
{ 
    setCookie("popup", "true", 1); 
    setCookie("visit_count", "1", 1); 
} 

Für mehr Verständnis in Cookies mit JS Sie diese Website besuchen können https://www.w3schools.com/js/js_cookies.asp

+0

Ty sehr. Auf der "Und wenn es möglich ist, Popup nach 2 besuchten Seiten zu zeigen", merke ich, ob ein Benutzer auf der Website bleibt und 2-3 Seiten surft, anstatt das Popup anzuzeigen. –

+0

Ihre Begrüßung. Möchten Sie also auftauchen, wenn der Benutzer eine andere Seite auswählt? was Sie tun können, ist jedes Mal, wenn der Benutzer auf einen Link oder eine Schaltfläche auf einer anderen Seite klickt, fügen Sie das Cookie visit_count hinzu und fügen Sie 1 hinzu, dann rufen Sie den Popup-Checker erneut auf. Ändern Sie einfach den Code und es wird Ihnen viel helfen! –