2014-01-26 6 views
0

Живая сайт- http://chitrchatr.comJavascript печенье не работает на всех странице

Я успешно добавить функцию SetCookie на кнопку выхода & другой линии связи. Итак, если кто-либо закрывает всплывающее окно или нажимает на эту ссылку, тогда cookie будет сохранен. & popup никогда не появляется для него/нее.

Он отлично работает, я закрываю/ища ссылку, он хранит cookie, но когда я пытаюсь перейти на другую страницу/ссылку на сайт, он появляется снова (cookie уже хранится, но он появляется). Любая идея, как исправить это, чтобы он никогда не появлялся, если кто-либо перейдет на другую страницу после сохранения файла cookie.

Мой HTML-

<div id="popupBox"> 
<div id='popupContent' class='visiblebox' style='width:500px;height:446px;z-index:999999;left: 31%; top: 15%;'> 
<a onClick="document.getElementById('popupBox').style.display='none'; setCookie('abc', 'def', 1)" href='#' id='closebox' title='Close this box'>X</a> 
.... 
PopUp content here 
.... 
<a onClick="document.getElementById('popupBox').style.display='none'; setCookie('abc', 'def', 1)" href="http://chitrchatr.com/signup-and-win-new-smartphones-and-get-our-service-for-free/" target="_blank"><img class="alignnone size-full wp-image-1548" alt="Promotion_06" src="http://chitrchatr.com/wp-content/uploads/2014/01/Promotion_06.png" width="243" height="61" /></a> 
</div> 
</div> 

Javascript-

<script type="text/javascript"> 

     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; 
     } 

     function getCookie(c_name) 
     { 
     var c_value = document.cookie; 
     var c_start = c_value.indexOf(" " + c_name + "="); 
     if (c_start == -1) 
      { 
      c_start = c_value.indexOf(c_name + "="); 
      } 
     if (c_start == -1) 
      { 
      c_value = null; 
      } 
     else 
      { 
      c_start = c_value.indexOf("=", c_start) + 1; 
      var c_end = c_value.indexOf(";", c_start); 
      if (c_end == -1) 
      { 
     c_end = c_value.length; 
     } 
     c_value = unescape(c_value.substring(c_start,c_end)); 
     } 
     return c_value; 
     } 


     if(getCookie('abc')=="def" && document.getElementById('popupBox')) 
     document.getElementById('popupBox').style.display='none'; 
</script> 

ответ

1

добавить путь к куки

function setCookie(name, value, days, secure) { 
    var expires = ''; 
    if (days) { 
    var date = new Date(); 
    date.setTime(date.getTime()+(days*24*60*60*1000)); 
    expires = '; expires='+date.toGMTString(); 
    } 
    var domain = locDomain; 
    document.cookie = name + '='+escape(value) + expires + '; path=/' + (domain ? '; domain=.' + domain : '') + ((secure && locProtocol == 'https:') ? '; secure' : ''); 
} 
+0

Да, в этом проблема. Как я могу хранить cookie на корне? Извините, у меня мало знаний. После применения вашего хранилища cookie кода на том же пути (путь страницы) не в корне, поэтому всплывающее окно появляется снова на другой странице. – arifix

+0

Я отредактировал свой код, попробую функцию setCookie выше –

1

Попробуйте установить местоположение печенья как '/'

+0

Да, это проблема. Как я могу хранить cookie на корне? Извините, у меня мало знаний. – arifix

+0

Вышеуказанный пост vlad - это хорошо. Просто сделайте это изменение. Заменить путь = /; "по пути /" – Maxzeroedge

Смежные вопросы