【发布时间】:2014-08-10 14:26:11
【问题描述】:
我想知道浏览器会话是全新的(用户刚刚启动浏览器并加载了我的页面)还是随后的点击。
如何用 JavaScript 做到这一点?
【问题讨论】:
我想知道浏览器会话是全新的(用户刚刚启动浏览器并加载了我的页面)还是随后的点击。
如何用 JavaScript 做到这一点?
【问题讨论】:
您可以使用window.referrer,尽管这不是一种万无一失的方法,因为某些浏览器设置会出于隐私目的将其隐藏。不过,它应该适用于大多数默认设置。
如果浏览器刚刚启动或用户从新标签页来到那里,它会给你undefined,但请记住,如果用户有一个主页并从那里来到该站点,它会给主页。此外,如果用户 CMD/CTRL + clicks 并在新标签页中打开,它将抛出 undefined,尽管他们点击了一个链接。
话虽如此,
if(window.referrer){
//stuff to do if clickthrough
}else{
//stuff to do if new session
}
【讨论】:
window.referrer 从未在 chrome 中定义过。
试试document.referrer,而不是window.referrer。我让它在 chrome 中为我工作
【讨论】:
您可以在网站加载到初始页面时设置会话 cookie。因此,当网站加载并检查该 cookie 是否存在时,您将知道它是否是一个新会话开始。
【讨论】:
您可以在 $(document).ready() 函数中检查 sessionStorage.length。 如果 sessionStorage 长度等于 0,那么您可能可以设置一个项目,例如您可以使用 jQuery.now() 存储页面加载时间的时间。 下次如果页面重新加载,可以检查长度是否不为0,表明同一个会话仍然存在。
$(document).ready(function(){
if(sessionStorage.length!=0){
//do something
}
else{
sessionStorage.setItem("time",jQuery.now());
}
}
【讨论】: