cookie 最近浏览记录(中文escape转码)具体实现


Posted in Javascript onJune 08, 2013

[javascript]

/** 
*pro_id: 产品id  
*brand_name : 品牌 
*pro_name : 产品id  
*price : 价格 
* catalog : 机型 
* img : 图片 
*file_name : 文件名 
*/  
var addHistory=function(pro_id,brand_name,pro_name,price,catalog,img,file_name){   
    stringCookie=getCookie('history');  
    var stringHistory=""!=stringCookie?stringCookie:"{history:[]}";  
    var json=new JSON(stringHistory);  
    var pro_ids = '' ;  
    jQuery.each(json['history'],function(i,val){  
        pro_ids+=json['history'][i].pro_id+"," ;  
    }) ;  
    if(jQuery.trim(pro_id)=='' || pro_ids.indexOf(pro_id)==-1){  
            var e="{pro_id:"+pro_id+",brand_name:'"+brand_name+"',pro_name:'"+pro_name+"',price:'"+price+"',catalog:'"+catalog+"',img:'"+img+"',file_name:'"+file_name+"'}";  
            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]['pro_id'],json['history'][i]['brand_name'],json['history'][i]['pro_name'],json['history'][i]['price'],json['history'][i]['catalog'],json['history'][i]['img'],json['history'][i]['file_name'],"history");  
        displayNum--;  
        if(displayNum==0){break;}  
    }  
}  
//添加一个cookie     
var addLi=function(pro_id,brand_name,pro_name,price,catalog,img,file_name,pid){  
    var a=document.createElement('a');  
    var href='/proDetail/'+file_name;  
    a.setAttribute('href',href);  
    a.setAttribute("target","_blank") ;  
    jQuery(a).html("<img src='"+unescape(img)+"' onerror="+"this.src='/images/nopic.gif'"+" width='90' height='50' /><h3> "+unescape(brand_name+pro_name+catalog)+"</h3><span class='price'>"+unescape(price)+"</span>") ;  
    var li=document.createElement('li');  
    li.appendChild(a);  
    jQuery(li).appendTo("#"+pid) ;  
}  
//添加cookie  
var setCookie=function(c_name,value,expiredays)  
{  
    var exdate=new Date()  
    exdate.setDate(exdate.getDate()+expiredays)  
    cookieVal=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";path=/;expires="+exdate.toGMTString());  
    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  
        return unescape(document.cookie.substring(c_start,c_end))  
        }   
      }  
    return ""  
}  
// 清除cookie   
function DeleteCookie(){  
     setCookie('history',"{history:[]}",30);  
}  
 

json.js
[javascript]
var JSON = function(sJSON){  
 this.objType = (typeof sJSON);  
if(this.objType=='string' && ''==sJSON){  
      sJSON = '{history:[]}' ;  
}  
    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;  
    }  
} 

加一个cookie
addHistory("<%=uuid%>",escape("<%=factoryname%>"),escape("<%=name%>"),escape("<%=price%>"),escape("<%=catalogname%>"),escape("<%=img%>"),escape("<%=file_name%>"));
Javascript 相关文章推荐
JS小框架 fly javascript framework
Nov 26 Javascript
jquery 图片上传按比例预览插件集合
May 28 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
Apr 12 Javascript
利用jQuery实现可以编辑的表格
May 26 Javascript
JavaScript缓冲运动实现方法(2则示例)
Jan 08 Javascript
js右下角弹出提示框示例代码
Jan 12 Javascript
基于javascript实现图片左右切换效果
Jan 25 Javascript
JavaScript实现一个带AI的井字棋游戏源码
May 21 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
Apr 30 Javascript
微信小程序基于movable-view实现滑动删除效果
Jan 08 Javascript
JavaScript实现多个物体同时运动
Mar 12 Javascript
js实现鼠标滑动到某个div禁止滚动
Sep 17 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
Jun 08 #Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
Jun 08 #Javascript
JavaScript自动设置IFrame高度的小例子
Jun 08 #Javascript
EXTjs4.0的store的findRecord的BUG演示代码
Jun 08 #Javascript
JavaScript String.replace函数参数实例说明
Jun 06 #Javascript
jquery DIV撑大让滚动条滚到最底部代码
Jun 06 #Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
Jun 06 #Javascript
You might like
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
怎样才能成为PHP高手?学会“懒惰”的编程
2006/12/05 PHP
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
告诉大家什么是JSON
2008/06/10 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
Django框架请求生命周期实现原理
2020/11/13 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
Ibatis如何调用存储过程
2015/05/15 面试题
土木工程应届生自荐信
2013/09/24 职场文书
英语专业毕业生自我鉴定
2013/11/09 职场文书
点菜员岗位职责范本
2014/02/14 职场文书