如何使用cookie来允许模式对话只被触发一次?一周后,模态可以再次发射

时间:2014-08-17 18:30:51

标签: jquery cookies modal-dialog

我希望使用Cookie只允许模式对话一次,直到一周过去。基本上,一旦文档加载,模态就会触发,并且在文档关闭之后,将会有一个过期设置为7天,直到它再次触发。

$(document).ready(function(){

var element = $('.md-modal'),
    close = $('.md-close');

element.addClass('md-show');

$(close).one('click', function() {
    element.removeClass('md-show');
    $(close).off()
});

});

有人可以帮忙指点使用cookies执行此操作吗?

谢谢!

威尔

1 个答案:

答案 0 :(得分:0)

试试这个:

if (getCookie("modalShow") != "1"){
    //Show Modal
    setCookie("modalShow","1", 7);
}

function setCookie(strName, strValue, expireDays) {
    var d = new Date();
    d.setTime(d.getTime() + (expireDays * 604800000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = strName + "=" + strValue + "; " + expires + "; path=/";
}

function getCookie(strName) {
    var name = strName + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}

在第一个块中检查cookie,如果我们没有名称为的cookie:modalShow和value:1则显示模态并设置一个具有此名称和值的cookie以及一个7天的到期时间。 7天后,cookie自动过期,模式再次显示。