2011-07-03 3 views
13

가능한 중복 :
What is the “best” way to get and set a single cookie value using JavaScript내가 가지고있는 코드로 x 일 후에 만료되도록 쿠키를 설정할 수 있습니까?

그래서 나는, 그래서 나는 X를 눌러 사업부를 기본적으로 X와 컨테이너를 만드는 코드를 (내가하지 않았다)이 컨테이너가 닫힙니다. 그러나 페이지를 새로 고치면 div 컨테이너가 다시 나타납니다.

사람이 X 버튼을 누를 때 해당 페이지에서 div 컨테이너를 다시 볼 수 없거나 (30 일과 같이 설정된 시간 동안) 볼 수 있습니까?

가능한 한 한 걸음 더 나아가서 사람이 X 버튼을 누르면 내 div 사이트를 다시 볼 수 없습니다. 동일한 div를 구현할 계획입니다. 컨테이너 내.

희망 사항이 너무 혼란스럽지 않고 누군가 나를 도울 수 있기를 바랍니다. 감사!

HTML 코드 :

<div id="bottom_ad"> 
    <div id="close_ad" onclick="close_bottom_ad();">X</div> 
    <!-- Ad Content --> 
</div> 

CSS 코드 : (. 파일의 맨 아래에있는 장소, 태그 앞에)

#bottom_ad 
{ 
    position: absolute; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    height: 80px; 
    background: #000; 
} 
#close_ad 
{ 
    position: absolute; 
    top: 8px; 
    right: 8px; 
    width: 15px; 
    height: 15px; 
    color: #fff; 
} 

자바 스크립트 코드 :

<script type="text/javascript"> 
    // I may have sorta kinda taken this function from W3Schools. :S 
    function getCookie(c_name) 
    { 
     var i,x,y,ARRcookies=document.cookie.split(";"); 
     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); 
      } 
     } 
    } 

    var ad_cookie = getCookie("closedAd"); 

    if (ad_cookie != null && ad_cookie != "") 
    { 
     document.getElementById("bottom_ad").style.display="none"; 
    } 

    function close_bottom_ad() 
    { 
     document.getElementById("bottom_ad").style.display="none"; 
     document.cookie = "closedAd=true;"; 
    } 
</script> 
+0

아니야? 나는 몰라. 나는 결코 자바 스크립트를 건드리지 않지만, 나는이 효과를 원한다. 그리고 나는 내 인생에서 그 실을 본 ​​적이 없다. – user815598

+0

글쎄, 쿠키를 올바르게 설정하는 법을 알고 싶습니까? 그래서 나는 그것을 여기에서 찾았고이 질문을 발견했다. 나는 받아 들여진 응답이 너를 돕고 너가 원하는 것을하고 있다고 생각한다. 그래서 저는 그것을 복제본으로 폐쇄하기로 결정했습니다. –

+0

스크립트로 모든 페이지에 html을 배치하면 사람들이 쿠키를 삭제할 때까지 광고가 표시되지 않아야합니다. 'document.cookie = "closedAd = true; path = /";'다른 질문의 createCookie에 만기가있는 페이지가 있는지 확인하십시오. 날짜 – mplungjan

답변

23

가를 설정하려면 쿠키에 만료일이 30 일이면 쿠키에 만료 시간을 추가해야합니다. 여기에 N 일 동안 쿠키를 설정하는 매우 간단한 쿠키 기능입니다 :

function createCookie(name, value, days) { 
    var date, expires; 
    if (days) { 
     date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     expires = "; expires="+date.toGMTString(); 
    } else { 
     expires = ""; 
    } 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

쿠키에 적절한 만료 날짜를 설정하면, 그것은 그 시간에 자동으로 제거됩니다.

페이지가로드 될 때 (페이지를로드하기 전에로드가 완료 될 때까지 기다려야합니다.) 쿠키가 closeAd으로 설정되어 있는지 확인하고, 그렇다면 코드를 실행하여 광고. 깜박임 무료 시청 환경 (처음에는 광고가 열리지 않고 닫히지 않음) 때문에 숨겨진 광고로 시작하고 쿠키가없는 경우에만 표시 할 수 있습니다. 쿠키가 없으면 동적으로 페이지에 추가 할 수 있습니다.

관련 문제