在jquery脚本上设置cookie的问题

时间:2011-07-02 01:00:38

标签: jquery cookies fancybox

任何人都可以告诉我这段代码有什么错误吗?我正在尝试为fancybox弹出窗口设置一个cookie,但它会在每次刷新时显示。包括所有.js。

<script>

$(document).ready(function(){

if(!$.cookie('the_cookie1')){
    $.cookie('the_cookie1', 'true', { expires: 3});

$.fancybox(
        '<h2>Hi!</h2><p>Lorem ipsum dolor</p>',
        {
                'autoDimensions'    : false,
            'width'             : 350,
            'height'            : 'auto',
            'transitionIn'      : 'none',
            'transitionOut'     : 'none'
        }
           );
}

});

</script>

2 个答案:

答案 0 :(得分:1)

我将代码块修改为以下内容,它在Chrome 13和FF5中都按预期运行。

<script>

    $(document).ready(function () {
        var cookieName = 'the_cookie1';

        var cookie = $.cookie(cookieName);
        if(cookie === null) {

            var cookieOptions = { expires: 3, path: '/' /*domain:, secure: false */ };

            $.cookie(cookieName, 'true', cookieOptions);

            $.fancybox(
                '<h2>Hi!</h2><p>Lorem ipsum dolor</p>',
                {
                    'autoDimensions': false,
                    'width': 350,
                    'height': 'auto',
                    'transitionIn': 'none',
                    'transitionOut': 'none'
                }
            );
        }

    });

</script>

FireFox 5 enter image description here

Chrome 13 enter image description here

首先,我收到了该框并设置了cookie。此后,没有盒子。

我确实注意到Chrome有些奇怪,其中cookie偶尔会出现在控制台中,但调试脚本实际上显示cookie已设置并正常运行。

答案 1 :(得分:0)

尝试将您的条件改为:

if(! ($.cookie('the_cookie1')){...

这两个都涵盖了null和'undefined'。