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 相关文章推荐
JavaScript 浮点数运算 精度问题
Oct 06 Javascript
浅谈javascript中的作用域
Apr 07 Javascript
在javascript中执行任意html代码的方法示例解读
Dec 25 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
Dec 19 Javascript
jQuery中removeProp()方法用法实例
Jan 05 Javascript
jquery图形密码实现方法
Mar 11 Javascript
javascript中attachEvent用法实例分析
May 14 Javascript
详解vue-Resource(与后端数据交互)
Jan 16 Javascript
一个可复用的vue分页组件
May 15 Javascript
微信小程序开发之toast等弹框提示使用教程
Jun 08 Javascript
基于BootStrap实现简洁注册界面
Jul 20 Javascript
get  post jsonp三种数据交互形式实例详解
Aug 25 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
咖啡知识大全
2021/03/03 新手入门
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
2014/06/20 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
layui文件上传实现代码
2017/05/20 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
Python如何判断数独是否合法
2016/09/08 Python
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
pandas数值计算与排序方法
2018/04/12 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
Python lambda表达式用法实例分析
2018/12/25 Python
Python使用folium excel绘制point
2019/01/03 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
java字符串格式化输出实例讲解
2021/01/06 Python
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
会计毕业生自我鉴定
2013/11/04 职场文书
会议主持词
2014/03/17 职场文书
个人贷款担保书
2014/04/01 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js