jquery.cookie.js使用

本文介绍了一种使用 JavaScript 和 Cookie 来判断用户是否首次访问网站的方法,并提供了具体的实现细节及代码示例。

记录用户是否首次访问 或者用户名,密码等

用javascript+cookie判断用户是否首次访问网站

有时候,需要判断用户是否初次访问网站。

本文介绍一种javascript+cookie的方法。 通过javascript读写cookie,在cookie里记录用户是否访问过的信息。如果不能读出相应信息,则说明用户是初次访问。

什么是cookie?

从安全角度考虑浏览器是不能直接写本地硬盘的。 不过有些信息需要本地保存,就发明了cookie这么个东西。 浏览器写入cookie的信息大小,可以写的cookie个数都有限制。 另外,cookie是可以设置期限的。例如:30天期限的话,30天后这个cookie就无效了(被删除了吧)。

cookie的详细信息就请教google吧。

一个实现细节

我在实现该功能的时候,仅当访客滚动页面快到底部时,才去判断用户是否首次访问。 如果是首次访问,就弹出对话框(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 "";

转载于:https://my.oschina.net/chaun/blog/790306

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值