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写的点击上下滚动的小例子
Aug 27 Javascript
JavaScript 命名空间 使用介绍
Aug 29 Javascript
浅析Js中的单引号与双引号问题
Nov 06 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
Dec 08 Javascript
AngularJS实现元素显示和隐藏的几个案例
Dec 09 Javascript
jquery实现点击页面回到顶部
Nov 23 Javascript
javascript 日期相减-在线教程(附代码)
Aug 17 Javascript
vue2.0使用swiper组件实现轮播的示例代码
Mar 03 Javascript
简单了解JavaScript异步
May 23 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
深入理解javascript中的this
Feb 08 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
Feb 15 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
最新的php 文件上传模型,支持多文件上传
2009/08/13 PHP
PHP 危险函数全解析
2009/09/09 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
php实现zip文件解压操作
2015/11/03 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
微信小程序checkbox组件使用详解
2018/01/31 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
Python实现二分法算法实例
2015/02/02 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
使用Python实现简单的服务器功能
2017/08/25 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
超市营业员岗位职责
2013/12/20 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
邓小平理论心得体会
2014/09/09 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
体育部部长竞选稿
2015/11/21 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
python脚本框架webpy的url映射详解
2021/11/20 Python
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫