0

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

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

谢谢你的帮助

<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>
4

2 回答 2

0

您需要更新此行

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

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

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

在这里,您可以根据需要添加更多天数。希望这可以帮助。

于 2013-10-30T12:15:32.000 回答
0

您的createCookie函数为您设置到期时间,但是您将0作为到期天数传递,因此 cookie 不会持续存在。试试这个:

createCookie('mypopup', 'no', 7); // 7 = expires in 7 days, amend as required.
于 2013-10-30T12:16:42.023 回答