用js操作cookie保存浏览记录

本文介绍了一种使用JavaScript和Cookie实现用户浏览记录存储的方法。通过将浏览记录以JSON格式保存到Cookie中,并定时刷新显示最新的浏览记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:最近做了一个功能,记录用户浏览过的产品页面。我的思路是,客户每次进入产品页面,就自己调用JS把产品信息以json的形式保存到cookie里面。
浏览记录的显示是从cookie里读出来,然后解析成json,生成html元素。因为用户可能会同时打开好几个页面,这几个页面上可能都有浏览记录,为了使即使显示浏览记录,每秒中刷新一次。
要用到2个js文件,history.js,关键的聊天记录保存和读取代码。json.js,对json进行处理。

var addHistory=function(num,id){
stringCookie
=getCookie('history');
var stringHistory=""!=stringCookie?stringCookie:"{history:[]}";
var json=new JSON(stringHistory);
var e="{num:"+num+",id:"+id+"}";
json[
'history'].push(e);//添加一个新的记录
setCookie('history',json.toString(),30);
}
//显示历史记录
var DisplayHistory=function(){
var p_ele=document.getElementById('history');
while (p_ele.firstChild) {
p_ele.removeChild(p_ele.firstChild);
}

var historyJSON=getCookie('history');
var json=new JSON(historyJSON);
var displayNum=6;
for(i=json['history'].length-1;i>0;i--){
addLi(json[
'history'][i]['num'],json['history'][i]['id'],"history");
displayNum
--;
if(displayNum==0){break;}
}
}
//添加一个li元素
var addLi=function(num,id,pid){
var a=document.createElement('a');
var href='product.action?pid='+id;
a.setAttribute(
'href',href);
var t=document.createTextNode(num);
a.appendChild(t);
var li=document.createElement('li');
li.appendChild(a);
document.getElementById(pid).appendChild(li);
}
//添加cookie
var setCookie=function(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()
+expiredays)
cookieVal
=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
// alert(cookieVal);
document.cookie=cookieVal;
}
//获取cookie
function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start
=document.cookie.indexOf(c_name + "=")
if (c_start!=-1)
{
c_start
=c_start + c_name.length+1
c_end
=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
// document.write(document.cookie.substring(c_start,c_end)+"<br>");
return unescape(document.cookie.substring(c_start,c_end))
}
}
return ""
}

 

 

var JSON = function(sJSON){
this.objType = (typeof sJSON);
this.self = [];
(
function(s,o){for(var i in o){o.hasOwnProperty(i)&&(s[i]=o[i],s.self[i]=o[i])};})(this,(this.objType=='string')?eval('0,'+sJSON):sJSON);
}
JSON.prototype
= {
toString:
function(){
return this.getString();
},
valueOf:
function(){
return this.getString();
},
getString:
function(){
var sA = [];
(
function(o){
var oo = null;
sA.push(
'{');
for(var i in o){
if(o.hasOwnProperty(i) && i!='prototype'){
oo
= o[i];
if(oo instanceof Array){
sA.push(i
+':[');
for(var b in oo){
if(oo.hasOwnProperty(b) && b!='prototype'){
sA.push(oo[b]
+',');
if(typeof oo[b]=='object') arguments.callee(oo[b]);
}
}
sA.push(
'],');
continue;
}
else{
sA.push(i
+':'+oo+',');
}
if(typeof oo=='object') arguments.callee(oo);
}
}
sA.push(
'},');
})(
this.self);
return sA.slice(0).join('').replace(/\[object object\],/ig,'').replace(/,\}/g,'}').replace(/,\]/g,']').slice(0,-1);
},
push:
function(sName,sValue){
this.self[sName] = sValue;
this[sName] = sValue;
}
}

 

<script type="text/javascript" src="../js/json.js"></script>
<script type="text/javascript" src="../js/history.js"></script>
<ul id="history">
</ul>
<script>
addHistory(
15810782304,2);
addHistory(
64654665,2);
addHistory(
6843212,2);
addHistory(
84984432521,2);
setInterval(
"DisplayHistory()",1000);
</script>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值