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 学习笔记 选择器之三
Jul 23 Javascript
js 链式延迟执行DOME
Jan 04 Javascript
jQuery如何取id有.的值一般的方法是取不到的
Apr 18 Javascript
跟我学习javascript的最新标准ES6
Nov 20 Javascript
jquery.validate 自定义验证方法及validate相关参数
Jan 18 Javascript
微信小程序 教程之小程序配置
Oct 17 Javascript
Angular的$http与$location
Dec 26 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
May 18 Javascript
vue移动端UI框架实现QQ侧边菜单组件
Mar 09 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
Nov 08 Javascript
vue组件库的在线主题编辑器的实现思路
Apr 03 Javascript
Vue Router中应用中间件的方法
Aug 06 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
一个改进的UBB类
2006/10/09 PHP
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
php 信息采集程序代码
2009/03/17 PHP
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
Yii实现复选框批量操作实例代码
2017/03/15 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
Python简单生成随机数的方法示例
2018/03/31 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python绘制随机网络图形示例
2019/11/21 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
加拿大时装零售商:Influence U
2018/12/22 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
环境科学专业大学生自荐信格式
2013/09/21 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
推广普通话演讲稿
2014/05/23 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
检讨书范文500字
2015/01/28 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
简短清晨问候语
2015/11/10 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers