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动态加载javascript以减少服务器压力
Oct 29 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
Sep 21 Javascript
jquery中插件实现自动添加用户的具体代码
Nov 15 Javascript
JavaScript中的时间处理小结
Feb 24 Javascript
利用jquery获取select下拉框的值
Nov 23 Javascript
js中new一个对象的过程
Feb 20 Javascript
javascript编写简易计算器
May 06 Javascript
解决Vue页面固定滚动位置的处理办法
Jul 13 Javascript
记录一篇关于redux-saga的基本使用过程
Aug 18 Javascript
JavaScript实用代码小技巧
Aug 23 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
Apr 23 Javascript
JS的时间格式化和时间戳转换函数示例详解
Jul 27 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&amp;MYSQL留言板源码
2020/07/19 PHP
PHP无敌近乎加密方式!
2010/07/17 PHP
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
python列表与元组详解实例
2013/11/01 Python
python链接Oracle数据库的方法
2015/06/28 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
Python从单元素字典中获取key和value的实例
2018/12/31 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
Python调用Redis的示例代码
2020/11/24 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
ET Mall东森购物网:东森严选
2017/03/06 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
平面设计求职信
2014/03/10 职场文书
商务经理岗位职责
2014/07/30 职场文书
房产协议书范本
2014/10/18 职场文书
寒假致家长的一封信
2015/10/10 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android