热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->js 
站内搜索:
用javascript结合Cookies记录浏览历史(1)
作者:achome.cn 来源:achome.cn 整理日期:2007-10-27

最近在工作当中遇到一个问题 有个页面需要添加一个浏览历史记录功能

具体来说就是要记录下用户在此网站的点击历史 并把它们降序排列出来(只显示前6个浏览历史而且不能重复)

由于以前对javascript了解不够深入 一时间手足无措

后来经过两位高手同事的指点(对这两位同事的敬仰犹如滔滔江水连绵不绝...) 恍然大悟 豁然开朗
成功地完成了此功能的添加

首先来介绍一下javascript中关于此功能的一些对象和方法:

1. window.event对象:

event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
event对象只在事件发生的过程中才有效。

2. event.srcElement:

表示该事件的发生源 通俗一点说也就是该事件被触发的地方

3. srcElement.parentNode:

表示该事件发生源的父结点

4. srcElement.tagName:

表示事件发生源的标签名

5. toUpperCase():

大写化相应字符串的方法

基本上就是这些属性和方法,可能对于刚刚接触javascript的朋友们或者以前很少使用此类功能的朋友来说,
这些对象有些陌生,不过没关系,了解以后发现其实并不难,和javascript验证表单之类的并没有太多的不同。

下面就结合程序给大家一步一步讲解(程序难免有不合理之处,希望大家多多指正,共同进步):

第一部分: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个历史重复,如果不重复则写入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;
}

[1]  [2]  
相关文章