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 相关文章推荐
jquery 删除cookie失效的解决方法
Nov 12 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
Apr 29 Javascript
js生成验证码并直接在前端判断
May 15 Javascript
Js数组排序函数sort()介绍
Jun 08 Javascript
jQuery模拟黑客帝国矩阵效果实例
Jun 28 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
Apr 19 Javascript
angularJs关于指令的一些冷门属性详解
Oct 24 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
Apr 24 Javascript
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
详解npm 配置项registry修改为淘宝镜像
Sep 07 Javascript
微信小程序仿今日头条导航栏滚动解析
Aug 20 Javascript
ES2020 新特性(种草)
Jan 12 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
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
JS中表单的使用小结
2014/01/11 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
python33 urllib2使用方法细节讲解
2013/12/03 Python
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
python爬虫 requests-html的使用
2020/11/30 Python
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
《走一步再走一步》教学反思
2014/02/15 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
中职招生先进个人材料
2014/08/31 职场文书
个人查摆剖析材料
2014/10/16 职场文书
护士个人年度总结范文
2015/02/13 职场文书
保险内勤岗位职责
2015/04/13 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
《海上日出》教学反思
2016/02/23 职场文书
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang
win sever 2022如何占用操作主机角色
2022/06/25 Servers