如题: 在客户端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点(只精确到分,秒不算。)