方法一:
当页面初始化时需要判断是否存在
{
if (Request.Cookies["username"] == null)
{
HttpCookie myCookie = new HttpCookie("username");
myCookie.Values.Add("prodid", "");
myCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(myCookie);
}
}
这是插入cookie的代码
{
HttpCookie cookie = new HttpCookie("username");
if (Request.Cookies["username"].Values["prodid"] != "")
{
string myvalue = "";
myvalue = Request.Cookies["username"].Values["prodid"].ToString();
myvalue = cookievalue + "," + myvalue;
cookie.Values.Add("prodid", myvalue);
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
}
else
{
cookie.Values.Add("prodid", cookievalue);
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
}
}
读取cookie代码,只读取最后三条记录
{
int num = 0;
string myvalue = "";
myvalue = Request.Cookies["username"].Values["prodid"].ToString();
string resultvalue=string.Empty;
if (myvalue != "")
{
Char[] spitchar = new Char[] { Convert.ToChar(",") };
string[] cookievalue;
cookievalue = myvalue.Split(spitchar);
if (cookievalue.Length <= 3)
{
num = cookievalue.Length;
}
else
{
num = 3;
}
for (int i = 0; i < num; i++)
{
resultvalue += cookievalue[i].ToString();
}
Label1.Text = resultvalue;
}
}
最后是删除cookie的方法
{
HttpCookie myCookie = new HttpCookie("username");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
}
方法二:
<html> <body> <script> //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+"_www.achome.cn_"; 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("_www.achome.cn_"); 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; } } 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("_www.achome.cn_"); 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="对不起,您没有任何浏览纪录";} } // JavaScript Document </script> <div>浏览历史排行(只显示6个最近访问站点并且没有重复的站点出现)</div> <div id="history"> <script> history_show(); </script> </div> <div> <br> <br> 点击链接: <a href="#">网站1</a> <a href="#">网站2</a> <a href="#">网站3</a> <a href="#">网站4</a> <a href="#">网站5</a> <a href="#">网站6</a> <a href="#">网站7</a> <a href="#">网站8</a> <a href="#">网站9</a> </div> <div>如果有其他疑问请登陆<a href="http://www.achome.cn">www.achome.cn</a>与我联系</div> </body> </html> |
方法三:
由于以前对javascript了解不够深入,一时间手足无措。
后来经过两位高手同事的指点(对这两位同事的敬仰犹如滔滔江水连绵不绝...),恍然大悟,豁然开朗
成功地完成了此功能的添加。
首先来介绍一下javascript中关于此功能的一些对象和方法:
1. window.event对象:
event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
event对象只在事件发生的过程中才有效。
2. event.srcElement:
表示该事件的发生源 通俗一点说也就是该事件被触发的地方
3. srcElement.parentNode:
表示该事件发生源的父结点
4. srcElement.tagName:
表示事件发生源的标签名
5. toUpperCase():
大写化相应字符串的方法
基本上就是这些属性和方法,可能对于刚刚接触javascript的朋友们或者以前很少使用此类功能的朋友来说,这些对象有些陌生,不过没关系,了解以后发现其实并不难,和javascript验证表单之类的并没有太多的不同。
下面就结合程序给大家一步一步讲解(程序难免有不合理之处,希望大家多多指正,共同进步):
第一部分:javascript纪录浏览动作。
[复制此代码]CODE:
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; //取出事件发生源的名称,也就是<a>和<a/>之间的文字,也就是链接名称哈
address=srcElem.href+"_www.achome.cn_"; //取出事件发生源的href值,也就是该链接的地址
wlink=linkname+"+"+address; //将链接名称和链接地址整合到一个变量当中
old_info=getCookie("history_info"); //从Cookies中取出以前纪录的浏览历史,该函数后面有声明
//以下程序开始判断新的浏览动作是否和已有的前6个历史重复,如果不重复则写入cookies
var insert=true;
if(old_info==null) //判断cookie是否为空
{
insert=true;
}
else
{
var old_link=old_info.split("_www.achome.cn_");
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); //写入cookie,该函数后面有声明
history_show().reload();
break;
}
}
查看效果
srcElem = srcElem.parentNode;
}
}
catch(e){}
return true;
}
document.onclick=glog;//使每一次页面的点击动作都执行glog函数
第2部分:Cookies的相关函数。
[复制此代码]CODE:
//cookie的相关函数
//读取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;
}
//将浏览动作写入cookie
function setCookie (name, value) {
var exp = new Date();
exp.setTime (exp.getTime()+3600000000);
document.cookie = name + "=" + value + "; expires=" + exp.toGMTString();
}
第3部分:页面显示函数。
[复制此代码]CODE:
function history_show()
{
var history_info=getCookie("history_info"); //取出cookie中的历史记录
var content=""; //定义一个显示变量
if(history_info!=null)
{
history_arg=history_info.split("_www.achome.cn_");
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="对不起,您没有任何浏览纪录";}
}
<html>
<body>
<script>
//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+"_www.achome.cn_";
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("_www.achome.cn_");
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;
}
}
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("_www.achome.cn_");
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>
");
}
document.getElementById("history").innerHTML=content;
}
}
else
{document.getElementById("history").innerHTML="对不起,您没有任何浏览纪录";}
}
// JavaScript Document
</script>
<div>浏览历史排行(只显示6个最近访问站点并且没有重复的站点出现)</div>
<div id="history">
<script>
history_show();
</script>
</div>
<div>
点击链接:
<a href="#">网站1</a>
<a href="#">网站2</a>
<a href="#">网站3</a>
<a href="#">网站4</a>
<a href="#">网站5</a>
<a href="#">网站6</a>
<a href="#">网站7</a>
<a href="#">网站8</a>
<a href="#">网站9</a>
</div>
<div>如果有其他疑问请登陆<a href=http://www.jb51.net>脚本之家</a>与我联系</div>
</body>
</html>