cookie 最近浏览记录(中文escape转码)具体实现

[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%>"));

(0)

相关推荐

  • cookie 最近浏览记录(中文escape转码)具体实现

    [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('hi

  • js操作cookie保存浏览记录的方法

    本文实例讲述了js操作cookie保存浏览记录的方法.分享给大家供大家参考,具体如下: 说明:最近做了一个功能,记录用户浏览过的产品页面.我的思路是,客户每次进入产品页面,就自己调用JS把产品信息以json的形式保存到cookie里面. 浏览记录的显示是从cookie里读出来,然后解析成json,生成html元素.因为用户可能会同时打开好几个页面,这几个页面上可能都有浏览记录,为了使即使显示浏览记录,每秒中刷新一次. 要用到2个js文件,history.js,关键的聊天记录保存和读取代码.jso

  • jQuery.cookie.js实现记录最近浏览过的商品功能示例

    本文实例讲述了jQuery.cookie.js实现记录最近浏览过的商品功能.分享给大家供大家参考,具体如下: 1.jquery.cookie.js /*jquery.cookie.js */ jquery.cookie = function(name, value, options) { if (typeof value != 'undefined') { // name and value given, set cookie options = options || {}; if (value

  • jquery使用Cookie和JSON记录用户最近浏览历史

    在一些电商网站,有"商品浏览历史记录"这一功能,一些视频类.小说类的网站也能记录用户最近的浏览历史.本文将使用Cookie以及JSON来讲解如何实现这一功能. Cookie可以用来记录客户端用户ID.密码.浏览过的网页.停留的时间等信息,jQuery提供了一个cookie插件,能非常方便的读写cookie信息. 基本流程: 1.获取文章详情页面文章的标题和页面地址: 2.获取浏览历史cookie信息,判断如果浏览历史的cookie中已经存在当前文章的浏览记录,则不进行任何操作: 3.如

  • 地址栏传递中文参数乱码在js里用escape转码

    乱码,乱码,头大,烦,话说设置Tomcat后可以解决,但有的时候不管用了,这时,我们可以考虑转码方式不直接传中文,在js里用escape转码,记得需要用两次,如: var str=escape("这是中文参数"); str=escape(str); xxx.do?name=str; 在后台通过一个类的方法再转回来: Escape.unescape(request.getParameter("name")); Escape类如下: 复制代码 代码如下: package

  • 关于python scrapy中添加cookie踩坑记录

    问题发现: 前段时间项目中,为了防止被封号(提供的可用账号太少),对于能不登录就可以抓取的内容采用不带cookie的策略,只有必要的内容才带上cookie去访问. 本来想着很简单:在每个抛出来的Request的meta中带上一个标志位,通过在CookieMiddleware中查看这个标志位,决定是否是给这个Request是否装上Cookie. 实现的代码大致如下: class CookieMiddleware(object): """ 每次请求都随机从账号池中选择一个账号去访

  • 使用Cookies保存网站历史浏览记录实例代码

    下面的代码,注意利用了cookies的多个增加判定等,学习cookies操作的朋友,非常值得一看.核心代码: 复制代码 代码如下: function glog(evt){ evt=evt?evt:window.event; var srcElem=(evt.target)?evt.target:evt.srcElement; try{ while(srcElem.parentNode&&srcElem!=srcElem.parentNode){ if(srcElem.tagName&

  • JAVAEE model1模型实现商品浏览记录(去除重复的浏览记录)(一)

    在javaee中Model1模型是以jsp页面为中心的,jsp既要对浏览器的request做出逻辑处理(使用javabean),访问数据库也要显示出相关的页面. 在model1模型中,没有servlet. Model1结果图如下: Model1的可维护性  可扩展性都是较差的  只适合小项目. 首先运行结果 goods.jsp <%@page import="entity.Items"%> <%@page import="dao.ItemsDao"

  • Python实时监控网站浏览记录实现过程详解

    需求: (1) 获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中 (2)将这个txt文件发送给指定的邮箱地址(你的邮箱) (3)建立例行任务,每天定时自动完成这些操作,你就可以通过邮件查看你对象每天看啥了 准备 macOS Sierra Python3.6 Chrome 发送邮件的qq邮箱地址 qq邮箱授权码 SMTP服务器地址 : smtp.qq.com 接受邮件的邮箱地址 执行: (1) 首先我们用DB Browser for SQLite来看下

  • PHP 实现浏览记录并按日期分组

    现有测试数据如下,要求实现如下图中的效果: array(4) { [0] => array(6) { ["visit_id"] => int(127) ["goods_id"] => int(16) ["visittime"] => int(1494399935) ["goods_name"] => string(53) "OPPO R9s 全网通4G+64G 双卡双待手机 玫瑰金&qu

随机推荐