首页 > 编程 > JavaScript > 正文

js操作cookie保存浏览记录的方法

2019-11-20 10:55:58
字体:
来源:转载
供稿:网友

本文实例讲述了js操作cookie保存浏览记录的方法。分享给大家供大家参考,具体如下:

说明:最近做了一个功能,记录用户浏览过的产品页面。我的思路是,客户每次进入产品页面,就自己调用JS把产品信息以json的形式保存到cookie里面。

浏览记录的显示是从cookie里读出来,然后解析成json,生成html元素。因为用户可能会同时打开好几个页面,这几个页面上可能都有浏览记录,为了使即使显示浏览记录,每秒中刷新一次。

要用到2个js文件,history.js,关键的聊天记录保存和读取代码。json.js,对json进行处理。

history.js

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);}//添加cookievar 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;}//获取cookiefunction 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 ""}

json.js

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(/objectobject,/ig,'').replace(/,/}/g,'}').replace(/,/]/g,']').slice(0,-1);  },  push:function(sName,sValue){    this.self[sName] = sValue;    this[sName] = sValue;  }}

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表