2016-11-21 90 views
0

我的代码不工作。其目的是检查是否为该语言设置了以前的cookie。如果不是,它会创建一个cookie来存储所选语言。语言选择器Cookie

<script type="text/javascript"> 

function setCookie(cname, cvalue, exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
    var expires = "expires="+d.toUTCString(); 
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 
} 

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

function checkCookie() { 
    var languageSet = getCookie("setLanguage"); 
    if (languageSet != "" || languageSet != null) { 
     return null; 
    } else { 
      jQuery.fancybox("#selectFlagDiv"); 
      setCookie("setLanguage", setLanguage, 365); 
     } 
} 
+0

你能检查cookie是否设置? –

+0

没有cookie未被设置。 – Brigitte

+0

您是否在Javascript控制台中收到任何警告或错误消息?如果是这样,请你可以发布他们?你错过了一个关闭'script'标签;是一个复制粘贴错误,还是代码中缺少? – Harry

回答

0

http://www.w3schools.com/js/js_cookies.asp

你checkCookie逻辑是错误的。

function checkCookie() { 
    // try and find the cookie or return empty string 
    var languageSet = getCookie("setLanguage"); 
    // if languageSet is not the empty string then the cookie did exist 
    if (languageSet != "") { 
    alert('found the cookie'+ languageSet); 
     return null; 
    } else { 
    // otherwise set the cookie to the default value 
      jQuery.fancybox("#selectFlagDiv"); 
      setCookie("setLanguage", 'default cookie value here', 365); 
     } 
}