json_js cookie 的使用方法记录用户浏览信息

更新时间:2017-07-15    来源:浏览器    手机版     字体:

【www.bbyears.com--浏览器】

cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。

不同的浏览器对cookie的实现也不一样,但其性质是相同的。例如在Windows 2000以及Windows xp中,cookie文件存储于documents and settingsuserNamecookie文件夹下。通常的命名格式为:userName@domain.txt。

cookie机制将信息存储于用户硬盘,因此可以作为全局变量

 代码如下
/*
*设置与获取Cookie
*/
var Cookie = {}
//写入Cookie,key为键,value是值
//duration过期时间(天为单位,默认1天)
Cookie.write = function (key, value, duration)
{
    Cookie.remove(key);
    var d = new Date();
    if (duration <= 0)
        duration = 1;
    d.setTime(d.getTime() + 1000 * 60 * 60 * 24 * duration);
    document.cookie = key + "=" + encodeURI(value) + "; expires=" + d.toGMTString() + ";path=/";
};
//移除Cookie,key为键
Cookie.remove = function (key)
{
    var d = new Date();
    if (Cookie.read(key) != "")
    {
        d.setTime(d.getTime() - (86400 * 1000 * 1));
        document.cookie = key + "=;expires=" + d.toGMTString();
    }
};
//读取Cookie,key是键
//不存在返回空字符串""
Cookie.read = function (key)
{
    var arr = document.cookie.match(new RegExp("(^| )" + key + "=([^;]*)(;|$)"));
    if (arr != null)
        return decodeURIComponent(arr[2]);
    return "";
};

实例

要用到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)+"
");
        return unescape(document.cookie.substring(c_start,c_end))
        }
      }
    return ""
}

json数据如下

 代码如下 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;
    }
}

html代码

 代码如下

<script type="text/javascript" src="../js/json.js"></script>
<script type="text/javascript" src="../js/history.js"></script>

热门标签

更多>>

本类排行