如何确定浏览器会话是刚刚启动还是后续点击?

时间:2014-06-19 22:01:22

标签: javascript session-state

我想知道浏览器会话是全新的(用户刚启动浏览器并加载我的页面)还是后续点击。

如何使用JavaScript完成此操作?

4 个答案:

答案 0 :(得分:2)

而不是window.referrer尝试document.referrer。我让它在chrome中为我工作

答案 1 :(得分:1)

您可以使用window.referrer,虽然这不是万无一失的方法,因为某些浏览器设置会隐藏它以保护隐私。不过,它应该可以在大多数默认设置下正常工作。

如果浏览器刚刚启动或者用户从新选项卡到达,它将为您提供undefined,但请记住,如果用户有主页并从那里访问该网站,它会给出主页。此外,如果用户CMD/CTRL + click并在新标签页中打开,它会抛出undefined,尽管他们点击了链接即可到达那里。

说完了,

if(window.referrer){
  //stuff to do if clickthrough
}else{
  //stuff to do if new session
}

Demo

答案 2 :(得分:0)

您可以在网站加载初始页面时设置会话Cookie。因此,当网站加载并且您检查该cookie是否存在时,您将知道它是否是新的会话开始。

答案 3 :(得分:0)

您可以在$(document).ready()函数中检查sessionStorage.length。 如果sessionStorage长度等于0,那么您可以设置一个项目,例如您可以使用jQuery.now()存储页面加载时间的时间。 下次,如果页面重新加载,您可以检查不是0的长度,表明同一会话仍然存在。

$(document).ready(function(){
  if(sessionStorage.length!=0){
    //do something
  }
  else{
    sessionStorage.setItem("time",jQuery.now());
  }
}