您的位置:首页 > 运维架构 > 网站架构

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

2010-07-13 00:00 736 查看
下面的代码,注意利用了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&&srcElem.tagName.toUpperCase()=="A"){ 
linkname=srcElem.innerHTML; 
address=srcElem.href+"|"; 
wlink=linkname+"+"+address; 
old_info=getCookie("history_info"); 
var insert=true; 
if(old_info==null){//判断cookie是否为空 
insert=true; 
} 
else{ 
var old_link=old_info.split("|"); 
for(var j=0;j<=5;j++){ 
if(old_link[j].indexOf(linkname)!=-1) 
insert=false; 
if(old_link[j]=="null") 
break; 
} 
} 
if(insert){ 
wlink+=getCookie("history_info"); 
setCookie("history_info",wlink); 
history_show().reload(); 
break; 
} 
else 
{ 
var old_link1=old_info.split("|"); 
var length=old_link1.length 
var newcookie='' 
for(var j=0;length<=6?j<=length-1:j<=5;j++){ 
if(old_link1[j].indexOf(linkname)==-1) 
{ 
if(j==length-1||j==5) 
{ 
newcookie=newcookie+old_link1[j] 
} 
else 
{ 
newcookie=newcookie+old_link1[j]+'|' 
} 
} 

} 
newcookie=wlink+newcookie 
setCookie("history_info",newcookie); 
history_show().reload(); 
break; 
} 
} 
srcElem = srcElem.parentNode; 
} 
} 
catch(e){} 
return true; 
}

完整的效果演示代码:




仿淘宝网的最近浏览记录功能


//cookie相关函数
function getCookieVal(offset){
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function getCookie(name){
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function setCookie(name,value){
var exp = new Date();
exp.setTime (exp.getTime()+3600000000);
document.cookie = name + "=" + value + "; expires=" + exp.toGMTString();
}
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&&srcElem.tagName.toUpperCase()=="A"){
linkname=srcElem.innerHTML;
address=srcElem.href+"|";
wlink=linkname+"+"+address;
old_info=getCookie("history_info");
var insert=true;
if(old_info==null){//判断cookie是否为空
insert=true;
}
else{
var old_link=old_info.split("|");
for(var j=0;j
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: