记录用户是否首次访问 或者用户名,密码等javascript
有时候,须要判断用户是否初次访问网站。css
本文介绍一种javascript+cookie的方法。 经过javascript读写cookie,在cookie里记录用户是否访问过的信息。若是不能读出相应信息,则说明用户是初次访问。java
什么是cookie?浏览器
从安全角度考虑浏览器是不能直接写本地硬盘的。 不过有些信息须要本地保存,就发明了cookie这么个东西。 浏览器写入cookie的信息大小,能够写的cookie个数都有限制。 另外,cookie是能够设置期限的。例如:30天期限的话,30天后这个cookie就无效了(被删除了吧)。安全
cookie的详细信息就请教google吧。cookie
一个实现细节ide
我在实现该功能的时候,仅当访客滚动页面快到底部时,才去判断用户是否首次访问。 若是是首次访问,就弹出对话框(DIV)询问是否愿意配合作 问卷调查 。函数
代码动画
闲话少说吧,具体内容参见注释。 若是有没写清楚地,麻烦留言。网站
<script type="text/javascript">
// 绑定在页面滚动时间上的处理函数。每当用户滚动页面,这个函数都会被调用。
$(window).scroll(function() {
var bottom = $(document).height() - $(window).height();
var position = $(this).scrollTop();
if(position > 900 || // 仅当访客已经滚动必定范围(阅读一些内容)后
position > bottom*0.67 ) //当页面较小时,按照比例算
{
var newVisitor = isNewVisitor();// 若是是新访客
if(newVisitor === true)
{
// 动画弹出消息框
$("#invite-questionnaire").animate({right:"0", bottom:"0"}, 100);
// 标记:已经向该访客弹出过消息。30天以内不要再弹 setCookie("gznotes-visited","true", 30); } } }); </script> // 访客点击“没空”后,用这个函数隐藏消息框 function hideQuestionnaire() { $("#invite-questionnaire").css("display","none"); } function isNewVisitor() { // 从cookie读取“已经向访客提示过消息”的标志位 var flg = getCookie("gznotes-visited"); if (flg === "") { return true; } else { return false; } } // 写cookie function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+d.toUTCString(); document.cookie = cname + "=" + cvalue + "; " + expires +";path=/"; } // 读cookie function getCookie(cname) { var name = cname + "="; 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); if (c.indexOf(name) == 0) return c.substring(name.length,c.length); } return ""; }