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

How to disable popup from showing up on given page for 2 days after I click .popup-close on first visit to that page?

如何在我首次访问该页面时单击 .popup-close 后 2 天禁止弹出窗口在该页面上显示?

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

我在代码的第 122-140 行之间尝试了 localstorage。我是javascript初学者请帮忙:)

也许必须应用一些计时器,这将计算为 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);
        }
    //]]>

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

var d = new Date();

这将标记当前日期,然后您所要做的就是再次检查访问者的日期,如果减去它们,则等于 2 天再次弹出。

这是一个使用cookies的函数。

/* 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 "";
}