javascript
  • cookies
  • 2012-11-13 197 views 0 likes 
    0

    我正在使用这个JavaScript代码的cookie,我想实现这一点:当访客点击关闭div将被隐藏在网站的所有页面上。我做错了什么?

    <script type="text/javascript"> 
    var $j = jQuery.noConflict(); 
    $j(document).ready(function() 
    { 
    if(getCookie('show_cookie_message') != 'no') 
    { 
        $j('#cookie_box').show(); 
    } 
    
    $j('.cookie_box_close').click(function() 
    { 
        $j('#cookie_box').animate({opacity:0 }, "slow"); 
        setCookie('show_cookie_message','no'); 
        return false; 
    }); 
    }); 
    
    function setCookie(cookie_name, value) 
    { 
    document.cookie = cookie_name+ "=" + escape(value); 
    } 
    
    function getCookie(cookie_name) 
    { 
    if (document.cookie.length>0) 
    { 
        cookie_start = document.cookie.indexOf(cookie_name + "="); 
        if (cookie_start != -1) 
        { 
         cookie_start = cookie_start + cookie_name.length+1; 
         cookie_end = document.cookie.indexOf(";",cookie_start); 
         if (cookie_end == -1) 
         { 
          cookie_end = document.cookie.length; 
         } 
         return unescape(document.cookie.substring(cookie_start,cookie_end)); 
        } 
    } 
    return ""; 
    } 
    </script> 
    

    #cookie_box 
    { 
    position: fixed; 
    display: none; 
    bottom: 0px; 
    font-size: 0.8em; 
    z-index: 1000; 
    background:#393939; 
    padding:5px; 
    text-align:center; 
    width:99%; 
    color:#ffffff; 
    } 
    #cookie_box a:hover 
    { 
        color:#ffffff; 
        text-decoration: underline 
    } 
    
    
    <div id="cookie_box">Our site requires cookies to function, <a href="/cookies">click here</a> for more information <a href="#" class="cookie_box_close">Close [X]</a></div> 
    

    如果我点击“关闭”它会关闭cookie_box格但只有在该网页。如果我浏览到另一个页面,div再次可见。 任何帮助将是伟大的,谢谢!

    +3

    你能详细解释一下问题到底是什么,给你的文章一个更具描述性的标题吗? –

    +1

    是您的Cookie设置并正确获取? – kingkode

    +0

    我更新了所有代码 – user1822312

    回答

    0

    如果cookie被获取和正确设置,您可以使用类似:

    if (getCookie('show_cookie_message') != 'no') { 
        $j('#cookie_box').show(); 
    } else { 
        $j('#cookie_box').hide(); 
    } 
    

    它确保它要么显示或隐藏的方式。

    0

    为了确保cookie的设置和检查正确,我使用这些JS cookie代码,经过多年的经验...有时短路是不可靠的。

    function getCookie(c_name){ 
    var i,x,y,ARRcookies=document.cookie.split(";"); 
    var ARRcookies_length=ARRcookies.length; 
    for (i=0;i<ARRcookies_length;i++) 
    { 
        x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
        y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
        x=x.replace(/^\s+|\s+$/g,""); 
        if (x==c_name) 
        { 
        return unescape(y); 
        } 
        } 
    } 
    
    function checkCookie(cookie_name){ 
    var the_cookie=getCookie(cookie_name); 
        if (the_cookie!=null && cookie_name!=""){ 
        return true 
        } 
        else { 
        return false; 
        } 
    } 
    
    function setCookie(c_name,value,exdays){ 
    var exdate=new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
    document.cookie=c_name + "=" + c_value; 
    } 
    
    相关问题