当前位置: 代码迷 >> J2EE >> 用cookie实现最近浏览记录的有关问题
  详细解决方案

用cookie实现最近浏览记录的有关问题

热度:252   发布时间:2016-04-22 02:41:28.0
用cookie实现最近浏览记录的问题?
在一个系统中想实现记录最近浏览的12项记录

<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" style="border-top:1px solid #92B9CC;">
  <tr>
  <td height="22" class="main_t_bg"><div class="egd_main_bulletin"></div></td>
  </tr>
  <tr>
  <td valign="top">
  <div style=" width:100%; height:100%; overflow:auto;">
  <form>
<label id="module_gg">
<!-- 最近浏览记录-->
  ========================在这里显示==========================================================
<!-- 最近浏览记录 -->
</label>
</form>
  </div>
</td>
  </tr>
  <tr>
  <td height="25" align="right" bgcolor="#D1E3FA" ><a href="javascript:thisPage.refresh('bulletins');">刷新</a> | <a href="javascript:thisPage.more('bulletins');">更多的</a>&nbsp;</td>
  </tr>
</table>

希望高手能给个例子!

------解决方案--------------------
JScript code
第一部分:JavaScript纪录浏览动作 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个历史重复,如果不重复则写入cookiesvar 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的相关函数//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;  } //将浏览动作写入cookiefunction setCookie (name, value) {        var exp = new Date();        exp.setTime (exp.getTime()+3600000000);        document.cookie = name + "=" + value + "; expires=" + exp.toGMTString(); }第3部分:页面显示函数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><br>");   }   document.getElementById("history").innerHTML=content;   }}else {document.getElementById("history").innerHTML="对不起,您没有任何浏览纪录";}}// JavaScript Document</script>
  相关解决方案