JS Cookie怎样设置当天有效?在Cookie保存用户访问过的页面?

2 篇文章 0 订阅

如题: 在客户端JS怎样设置当天有效的Cookie?在Cookie保存用户访问过的页面?

本人最近就是有这个需求,想统计一下用户每天访问过的页面有哪些(项目需要,不然可以通过网站统计工具完成)?一天重复访问的页面只算一次

不多说,直接上JS代码

function setCookie2(cookiename, cookievalue, milsecond)
{
	var date = new Date();
	date.setTime(date.getTime() + milsecond);
	document.cookie = cookiename + "=" + cookievalue + "; path=/;expires = " + date.toGMTString();
}

function getCookie(name) {
        var prefix = name + "="
        var cookieStartIndex = document.cookie.indexOf(prefix)
        if (cookieStartIndex == -1)
                return "";
        var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
        if (cookieEndIndex == -1)
                cookieEndIndex = document.cookie.length
        return (document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}

function deleteCookie(name, path, domain) {
        if (getCookie(name)) {
                document.cookie = name + "=" +
                ((path) ? "; path=" + path : "") +
                ((domain) ? "; domain=" + domain : "") +
                "; expires=Thu, 01-Jan-70 00:00:01 GMT"
        }
}

//现在距离当天结束时间:毫秒
function getExpireTime()
{
	var date = new Date();
	var hour = 23-date.getHours();
	var min = 59-date.getMinutes();
	var ms = (3600*hour + 60*min)*1000;
	return ms;
}

function setVPage()
{
	var host = window.location.host;
	var page = document.location.href.replace(host,"").replace("http://","");	//去掉域名

	var idx = page.indexOf("?");
	if(idx>0)
	{
		page = page.substr(0,idx);	//去掉参数
	}
	var ckpage = getCookie("VPAGE");
	if(!ckpage || ckpage.indexOf(page) == -1)
	{
		ckpage += page+"|";
		var ms = getExpireTime();
		setCookie2("VPAGE", ckpage, ms);
		//send request 把访问的页面发到服务器。。。
	}
}

使用: 直接在JS调用 setVPage() 就可以了。

用FireBug看看cookie,可以看到存的页面名称,过期时间为当天晚上12点(只精确到分,秒不算。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值