9

我已经在我的网站上实现了 intro.js。但我只想在第一次访问时开始旅行。可能是通过使用cookies..网站是用html而不是php..

4

1 回答 1

11

JavaScript cookie 是一种解决方案,尽管我应该指出,只要用户保留 cookie,它就可以工作。

//set the cookie when they first hit the site
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;
}

//check for the cookie when user first arrives, if cookie doesn't exist call the intro.
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;
}

代码来自http://www.w3schools.com/js/js_cookies.asp

显然,您必须在那里填写一些空白,但这是在 javascript 中使用 cookie 的一个很好的起点。

编辑:

所以你想创建一个新函数,把它放在头部,在脚​​本标签内(如果你已经有了它们,只需将函数复制到那里(你还想把我提供的另外两个函数也放在脚本标签中) )。此功能将检查您是否有 cookie。如果你这样做,只需返回。如果不这样做,请创建 cookie 并运行介绍,

<head>
<script type="text/javascript">
function checkCookieIntro(){
   var cookie=getCookie("mySite");

   if (cookie==null || cookie=="") {
      setCookie("mySite", "1",90);
      runIntro();  //change this to whatever function you need to call to run the intro
      }
}

</script>
</head>

现在改变你的身体:

<body onload="checkCookieIntro()">

因此,当主体加载时,它将检查是否存在 cookie,如果不存在,则创建一个值为 1 的 cookie,该 cookie 将持续 90 天(除非用户删除它),然后运行介绍。如果 cookie 确实存在一个值,那么它什么也不做。

于 2013-10-09T02:59:09.050 回答