Cookie仅在Chrome中无效

时间:2014-02-18 16:08:16

标签: javascript jquery cookies

这是基本幻灯片切换的频次上限Cookie,我暂时没有使用过。在FF,IE中工作,在chrome中不起作用。上限基于日历日,而不是24小时时间段。我很高兴地报告问题是在本地浏览器中测试我的文件。上传到服务器,Cookie在Chrome中设置。不会忘记关于Chrome的这个事实

jQuery.noConflict();
jQuery(document).ready(function(){
var pageURL = location.href.toLowerCase();
var sbFirstSlide = (document.cookie.indexOf('sbb_'+pageURL) == -1); //check cookie for 'already seen today'
var sbTrigger = jQuery('#slidebartrigger');
var slideState = 0;     //0=up, 1=down
var downTM, upTM;
function slideUp(){
    if(slideState==1){
        if(downTM) clearTimeout(downTM);
        jQuery("#slidebar").slideToggle(200);
        slideState=0;
        sbTrigger.removeClass("closeSlide").one('click', slideDown);
    }
}   
function slideDown(){
    if(slideState==0){
        if(upTM) clearTimeout(upTM);
        jQuery("#slidebar").slideToggle(500);
        slideState=1;
        sbTrigger.removeClass("firstSlide");
        sbTrigger.addClass("closeSlide").one('click', slideUp);
    }
}
function setSBBCookie(){
    var oneDay = new Date();
    oneDay.setUTCDate(oneDay.getUTCDate()+1);
    oneDay.setUTCHours(0, 0, 0, 0); //set to literally day-by-day, rather than 24 hours
    document.cookie="sbb_"+pageURL+"=true;path=/;expires="+oneDay.toUTCString();
}
if(sbFirstSlide){
    slideDown();
    setSBBCookie();
    downTM=setTimeout(slideUp,3000);
}else{sbTrigger.removeClass("firstSlide").one('click', slideDown);}
});

1 个答案:

答案 0 :(得分:1)

您可能遇到的问题是Google Chrome在您运行本地文件时不允许您设置Cookie。您需要从某种服务器运行它或使用类似jsfiddle的东西。

如果您尝试在网络服务器(例如jsfiddle http://jsfiddle.net/X9yze/)上运行代码,您会看到它在Google Chrome中设置Cookie

Hope that helps