如何检测它是否是用户查看我网站的第一页?

时间:2013-05-20 01:25:55

标签: javascript

我想在我的网站上执行动画,只有当用户第一次访问网站时才会如此。我找到了localStorage的“第一次访问者”代码,但我没有找到这个。

4 个答案:

答案 0 :(得分:5)

Working FIDDLE Demo

您可以使用cookielocalStorage。考虑您有以下HTML代码:

<div id="first">
    Welcome Visitor
</div>

<p>This is my website.</p>

我们将display元素的first设置为none。所以它永远不会显示出来。

#first {
    display: none;
}

然后我们第一次检查。如果这是第一次,我们会显示该元素(也许可以用它做一些动画):

// this is the first time
if (! localStorage.noFirstVisit) {
    // show the element
    // and do the animation you want
    document.getElementById('first').style.display = 'block';

    // check this flag for escaping this if block next time
    localStorage.noFirstVisit = "1";
}

答案 1 :(得分:2)

当访问者访问您的网站时,请设置一个表明他们拥有的Cookie。在每个页面加载时,检查该cookie是否存在。如果是,则用户之前已访问过您的网站。如果它不存在,则可能是他第一次访问......或者他们已经从浏览器中删除了您的cookie。

因此,如果这是我第一次访问,那么cookie就不应该存在,你应该播放动画。

答案 2 :(得分:1)

我正在为@Joseph the Dreamer方法提供示例代码

创建并存储Cookie

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

获取Cookie值

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

请参阅Cookie with Javascript

答案 3 :(得分:0)

假设您是在此窗口中查看的第一页:

   if (location.referrer == location.href)
   {
      // the page was opened in a new window or tab and accessed directly
   }
   else if (location.referrer.indexOf(location.hostname) == -1) 
   {    
      // The page before this one was not a page on this site
   }