首页 / 脚本样式 / JavaScript / 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%>"));