2017-08-29 34 views
0

如何在第一次访问该页面时点击.popup-close后在给定页面上禁止弹出窗口显示2天?如何在第一次访问该页面之后点击.popup-close后禁用弹出窗口在给定页面上显示2天?

这是我的代码https://jsfiddle.net/4q1aL8pL/2/

我试着在我的代码行122-140之间的localStorage。我是javascript初学者,请帮忙:)

Maby必须有一些计时器应用,这将计为2天小时价值?

//<![CDATA[ 
     var n = Number(localStorage.getItem('odometerValue')) || 0; 
    var m = localStorage.getItem('displayNone'); 
     var myOdometer; 
     function startcounting() { 
      var div = document.getElementById("odometerDiv"); 
      myOdometer = new Odometer(div, {value: n, digits: 6, tenths: true}); 
    myOdometer.set(n);   
      update(); 
     } 

     function update() { 
      n=n+0.01 
      myOdometer.set(n); 
    localStorage.setItem('odometerValue', n); 
    localStorage.setItem('displayNone', m);   
      setTimeout(update, 200); 
     } 
    //]]> 
+1

我认为存储的localStorage/cookie的日期和每次访问2天检查完成将有助于 – Amogh

+0

听起来很合理 –

回答

1

这是一个使用cookie的函数。

/* Show popup if cookie doesn't exist. Will hide for 2 days if closed */ 
var PopUpCookie = getCookie("MyPopUpCookie"); 
if (PopUpCookie == '') { 
     $('#odometerDiv').show(); 
    } else { 
     $('#odometerDiv').hide(); 
    } 
} 

$('.popup-close').on('click', function() { 
    $('#odometerDiv').hide(); 
    setCookie("MyPopUpCookie", "hide"); 
}); 

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

function getCookie(cname) { 
    var name = cname + "="; 
    var ca = document.cookie.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 ""; 
} 
2

您可以使用本地存储来保存日期时弹出加载。

var d = new Date(); 

这将杜绝当前的日期,那么所有你需要做的就是再次与访问者的日期检查,如果你减去他们,这等于2天后再次弹出。

相关问题