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

本文介绍了一个仿淘宝网站最近浏览记录功能的实现方案。通过使用JavaScript和cookie技术,能够记录用户的点击行为,并将最近浏览的商品信息存储在客户端。文章详细展示了如何避免重复记录以及如何限制记录数量。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>仿淘宝网的最近浏览记录功能</title> 
<meta http-equiv="content-type" content="text/html;charset=gb2312"> 
<script language="javascript" src="jquery-1.4.2.js"> </script>
<script language="javascript"> 
$(function(){
		   $("a").click(function(){
		   	//alert($(this).attr("href"));
			glog(); 			 
			});
		   });
//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<=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; 
} 
//document.onclick=glog; 
function history_show(){ 
	var history_info=getCookie("history_info"); 
	var content=""; 
	if(history_info!=null){ 
		history_arg=history_info.split("|"); 
		var i; 
		for(i=0;i<=5;i++){ 
			if(history_arg[i]!="null"){ 
				var wlink=history_arg[i].split("+"); 
				content+=("<font color='#ff000'>↑</font>"+"<a href='"+wlink[1]+"' target='_blank'>"+wlink[0]+"</a><br>"); 
			} 
			document.getElementById("history").innerHTML=content; 
		} 
	}else{ 
		document.getElementById("history").innerHTML="对不起,您没有任何浏览记录!"; 
	} 
} 
function delcookie(){
		alert(document.cookie);
	}
</script> 
</head> 
<body> 
<div>您最近关注的内容(只显示6个最近关注的内容并且不会重复出现):</div> 
<div id="history"> 
<script language="javascript">history_show();</script> 
</div> 
<div> 
<br><br>请选择:<br> 
<a href="#" >1</a> 
<a href="#" >PHP</a> 
<a href="#" >ASP.NET</a> 
<a href="#" >JSP</a> 
<a href="#" >C#</a> 
<a href="#" >VB</a> 
<a href="#" >VC</a> 
<a href="#" >AJAX</a> 
<a href="#" >DELPHI</a> 
<a href="#">asdfasdfasdf</a> 
<span onclick="delcookie();">delete</span>
</div> 
</body> 
</html> 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值