使用cookie和jQuery BlockUI

3
我希望在主页上显示一个弹出窗口,但只显示一次。如果有人转到其他页面,然后返回主页,我不想再次显示它。
这是代码:
<script type="text/javascript" language="javascript">
    $(document).ready(function(){
    $("#displaybox").hide();
    message: $('#displaybox'),
        css: {
            top:  ($(window).height() - 391) /2 + 'px',
            left: ($(window).width() - 556) /2 + 'px',
            width: '556px'
           }
    });
    $('.displayboxclose').attr('title','Click to close').click($.unblockUI);

    setTimeout($.unblockUI, 30500);

});
</script>

有人能帮忙插入cookie代码吗?

我正在使用jQuery BlockUI插件和jquery-cookie插件。

2个回答

2

这种东西可能对您有用:

jQuery(function($) {
    if (!$.cookie('blockuicookie')) {
        // blockUI scripts goes here.
        $.cookie('blockuicookie', true, { "expires": 30, "path": "/" });
        setTimeout($.unblockUI, 30500);
    }
});

谢谢。那个有效。唯一的问题是,在设置了cookie之后,弹出图片不会显示,而是在页面底部显示。 - Irina
我想通了。我设置了 'code' #displaybox {position:fixed;width:556px; display:none;}。 - Irina
如果用户解决了您的问题,请不要忘记将其标记为已解决,以便未来的访问者可以轻松找到相同的解决方案。这样,如果有人遇到类似的问题并来到这里,他们就可以轻松地找到相同的解决方案。 - Emre Erkan

0
你不需要使用 jQuery Cookie 插件:
function setCookie(name, value, expires, path, domain, secure) {
    var caution = false;
    var curCookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
    if (!caution || (name + "=" + escape(value)).length <= 4000)
        document.cookie = curCookie;
        else
            if (confirm("Cookie exceeds 4KB and will be cut!"))
                document.cookie = curCookie;
}

//name - name of the cookie
//* return string containing value
//of specified cookie or null if cookie
//does not exist
function getCookie(name) {
    var prefix = name + "=";
    var cookieStartIndex = document.cookie.indexOf(prefix);
    if (cookieStartIndex == -1)
        return null;
        var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex +
                prefix.length);
                if (cookieEndIndex == -1)
                    cookieEndIndex = document.cookie.length;
                    return unescape(document.cookie.substring(cookieStartIndex +
                            prefix.length,
                            cookieEndIndex));
}

function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

设置 cookie 的方法如下:

setCookie("dateModified","11/14/2013");

获取cookie的方法是:
var lastDate = getCookie("dateModified");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接