设置Cookie过期时间。

时间:2013-10-30 12:13:04

标签: javascript jquery cookies

我有以下脚本用于主页上的弹出窗口。它运作良好,除了cookie似乎每天重置自己。我希望cookie尽可能地在未来到期。我的问题是我不熟悉javascript和cookies。有人能让我知道我需要改变什么部分吗?我搞砸了其中一些,但似乎让它变得更糟。

因为它位于我的网站上(http://www.swissdiamond.us)你可以看到它正在工作(你第一次在那里加载div,而不是任何其他)但是如果你明天回来隐藏的div将重新开始-load。

感谢您的帮助

<script type="text/javascript">
//<![CDATA[

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

function readCookie(name) {
var nameEQ = name + "=";
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,c.length);
  if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

function eraseCookie(name) {
createCookie(name,"",-1);
}

 function showModal() {
tb_show('Newsletter Signup','#TB_inline?height=300&amp;width=450&amp;inlineId=promo',false);
}

var visited = readCookie('mypopup');

 if (!visited) {
$(document).ready(function(){
  showModal();
  createCookie('mypopup','no',0);
});
}

//]]>
</script>

2 个答案:

答案 0 :(得分:0)

您需要更新此行

 date.setTime(date.getTime()+(days*24*60*60*1000));

或者你可以从这里传递天数值

createCookie('mypopup','no',0); // make the last parameter value as much as you want

您可以在此处添加更多天数。希望这有帮助。

答案 1 :(得分:0)

您的createCookie函数会为您设置到期日期,但是您将0作为日期值过期,因此Cookie不会保留。试试这个:

createCookie('mypopup', 'no', 7); // 7 = expires in 7 days, amend as required.