任何人都可以告诉我这段代码有什么错误吗?我正在尝试为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>
答案 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
Chrome 13
首先,我收到了该框并设置了cookie。此后,没有盒子。
我确实注意到Chrome有些奇怪,其中cookie偶尔会出现在控制台中,但调试脚本实际上显示cookie已设置并正常运行。
答案 1 :(得分:0)
尝试将您的条件改为:
if(! ($.cookie('the_cookie1')){...
这两个都涵盖了null和'undefined'。