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 相关文章推荐
类似框架的js代码
Nov 09 Javascript
根据鼠标的位置动态的控制层的位置
Nov 24 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
Nov 20 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
Dec 21 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
Feb 21 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
js+div实现文字滚动和图片切换效果代码
Aug 27 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 Javascript
超赞的jQuery图片滑块动画特效代码汇总
Jan 25 Javascript
Angular路由简单学习
Dec 26 Javascript
vue.js单页面应用实例的简单实现
Apr 10 Javascript
在react-antd中弹出层form内容传递给父组件的操作
Oct 24 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代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
javascript Object与Function使用
2010/01/11 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
babel基本使用详解
2017/02/17 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
利用Python破解验证码实例详解
2016/12/08 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
Python数据存储之 h5py详解
2019/12/26 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
Python中的面向接口编程示例详解
2021/01/17 Python
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
高中生活自我鉴定
2014/01/18 职场文书
秋季运动会活动方案
2014/02/05 职场文书
关于环保的演讲稿
2014/05/10 职场文书
关爱留守儿童标语
2014/06/18 职场文书
继承公证书格式
2015/01/26 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技