• 【转】用cookie保存浏览记录


    方法一:

    当页面初始化时需要判断是否存在

            protected void Page_Load(object sender, EventArgs e)
            
    {
                    
    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的代码

     public void addcookie(string cookievalue)
            
    {
                
                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代码,只读取最后三条记录

            public void playcookie()
            
    {
                
    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的方法

            protected void Button2_Click(object sender, EventArgs e)
            
    {
                HttpCookie myCookie 
    = new HttpCookie("username");
                myCookie.Expires 
    = DateTime.Now.AddDays(-1d);
                Response.Cookies.Add(myCookie);
            }

    方法二:

    JS+Cookies记录浏览记录
    2008/03/12 16:25
    <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>


     

  • 相关阅读:
    poj2631 Roads in the North(求树的直径)
    P3809 【模板】后缀排序
    P3376 【模板】网络最大流dinic算法
    3224: Tyvj 1728 普通平衡树
    034 Android IntentService 的使用
    033 Android 绑定Service并与之通信
    032 Android Service
    031 Android 异步任务(AsyncTask)
    030 Android 线程+Handler的使用
    029 Android WebView的使用(用来显示网页)
  • 原文地址:https://www.cnblogs.com/5tao/p/1301291.html
Copyright © 2020-2023  润新知