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 ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
Apr 01 Javascript
用jquery和json从后台获得数据集的代码
Nov 07 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
Sep 01 Javascript
Jquery操作cookie记住用户名
Mar 29 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
Jun 15 Javascript
js实现的在线调色板功能完整实例
Dec 21 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
Node.js中的http请求客户端示例(request client)
May 04 Javascript
JavaScript基础之流程控制语句的用法
Aug 31 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 Javascript
vue-自定义组件传值的实例讲解
Sep 18 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
php实现的click captcha点击验证码类实例
2014/09/23 PHP
php跨站攻击实例分析
2014/10/28 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
Javascript 继承机制的实现
2009/08/12 Javascript
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
python实现指定字符串补全空格的方法
2015/04/30 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
浅析python标准库中的glob
2020/03/13 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
大学在校生求职信范文
2013/11/21 职场文书
某同学的自我鉴定范文
2013/12/26 职场文书
招聘单位介绍信
2014/01/14 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android