2016-04-25 52 views
0

こんにちは私はJavaScriptを使用しています。クッキーを使用してJavaScriptを表示/非表示にする

$(document).ready(function() { 
 
     var status = getCookie(); 
 
     if (status > 0) { 
 
     setCookie(1); 
 
     document.getElementById('cookiemenu_dropdown').style.display = "block"; 
 
     } else { 
 
     setCookie(0); 
 
     document.getElementById('cookiemenu_dropdown').style.display = "none"; 
 
     } 
 
    }); 
 
    //----------------------------------------------------- 
 
    function getCookie() { 
 
     var cookies = document.cookie.split(';'); 
 
     var FirstCookie = cookies[0]; 
 
     var FirstValue = FirstCookie.split('=')[1]; 
 
     return FirstValue; 
 
     } 
 
     //----------------------------------------------------- 
 

 
    function setCookie(value) { 
 
     var expires = new Date(); 
 
     expires.setMonth(expires.getYear() + 1); 
 
     document.cookie = 'divStav' + '=' + value + ';EXPIRES=' + expires.toGMTString(); 
 
     } 
 
     //----------------------------------------------------- 
 

 
    function ShowHideCookieBox() { 
 
     var display = document.getElementById('cookiemenu_dropdown').style.display; 
 
     if (display == "block") { 
 
     document.getElementById('cookiemenu_dropdown').style.display = "none"; 
 
     setCookie(0); 
 
     } else { 
 
     document.getElementById('cookiemenu_dropdown').style.display = "block"; 
 
     setCookie(1); 
 
     } 
 
    }
<div id='cookiemenu'> 
 
    <div class='cookiemenu_header' onclick='ShowHideCookieBox()'> 
 
    <img src='./img/triangle.png' />Letní akce! 
 
    <img src='./img/triangle.png' /> 
 
    </div> 
 
    <div id="cookiemenu_dropdown" class='cookiemenu_content'> 
 
    <span class='date'>Lorem</span> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis magna sed scelerisque hendrerit. Curabitur non quam bibendum, eleifend lorem et, bibendum turpis. Aliquam finibus velit ac lorem consectetur hendrerit. Integer viverra risus vitae 
 
    sapien 
 
    </div> 
 
</div>

スクリプトは次のように動作するはずです:私は私のウェブページを初めて訪れると

、ボックスは(デフォルトでは)隠されています。ヘッダーをクリックすると、ボックスが表示され、値1がクッキーに設定されます(私のウェブ上には1つのクッキーしかありません)。再度訪問すると、が開かれ、(Cookie JavaScriptからは値1、値が1のときはdisplay:blockに設定されています)が表示されます。

問題があります。クリックして表示/非表示は正常に動作します。最初にページにアクセスするとボックスが非表示になります(これも問題ありません)。しかし、クッキーは保存されません。その後、ボックスを開いてF5キーを押し、ボックスはページのリロード後に非表示になります。

誰かが私に助けてくれますか?

答えて

1

私にとってはうまく動作します。 jQueryをインクルードしましたか? あなたはそれをあなたのようなあなたの準備ができて機能を変更することができ、純粋なJavaScriptのやり方行いたい場合は:あなたが年を持って、あなたは有効期限を破ったので、月に設定し

window.onload = function() { 
     var status = getCookie(); 
     if (status > 0) { 
     setCookie(1); 
     document.getElementById('cookiemenu_dropdown').style.display = "block"; 
     } else { 
     setCookie(0); 
     document.getElementById('cookiemenu_dropdown').style.display = "none"; 
     } 
    }; 
0

を:

expires.setMonth(expires.getYear() + 1); 

を使用してみてくださいsetMonthの代わりにsetYearです。

関連する問題