javascript结合Cookies实现浏览记录历史第1/3页

 更新时间:2008年09月02日 15:38:23   作者:  
最近在工作当中遇到一个问题 有个页面需要添加一个浏览历史记录功能,具体来说就是要记录下用户在此网站的点击历史 并把它们降序排列出来(只显示前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;
}
document.onclick=glog;//使每一次页面的点击动作都执行glog函数

相关文章

  • js实现5秒倒计时重新发送短信功能

    js实现5秒倒计时重新发送短信功能

    这篇文章主要为大家详细介绍了js实现5秒倒计时重新发送短信功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 禁用页面部分JavaScript不是全部而是部分

    禁用页面部分JavaScript不是全部而是部分

    全部限制那是很简单的事,直接把<script>脚本块过滤掉就行了,但是部分限制又是如何做到的呢,下面我们一起来看看
    2014-09-09
  • 实例分析javascript中的异步

    实例分析javascript中的异步

    这篇文章主要介绍的JS中异步的用法,实例代码简单易懂,方便大家更好的学习,有兴趣的朋友可以参考下
    2020-06-06
  • 文档处理系列——随时更新

    文档处理系列——随时更新

    文档处理系列——随时更新...
    2007-07-07
  • 原生JavaScript实现留言板

    原生JavaScript实现留言板

    这篇文章主要为大家详细介绍了原生JavaScript实现留言板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • 深入分析javascript中console命令

    深入分析javascript中console命令

    console对象是JavaScript的原生对象,它有点像Unix系统的标准输出stdout和标准错误stderr,可以输出各种信息用来调试程序,而且还提供了很多额外的方法,供开发者调用。它的常见用途有两个。显示网页代码运行时的错误信息。提供了一个命令行接口,用来与网页代码互动。
    2016-08-08
  • 使用mouse事件实现简单的鼠标经过特效

    使用mouse事件实现简单的鼠标经过特效

    这篇文章主要介绍了使用mouse事件实现简单的鼠标经过特效的方法,需要的朋友可以参考下
    2015-01-01
  • JavaScript简易计算器制作

    JavaScript简易计算器制作

    这篇文章主要为大家详细介绍了JavaScript简易计算器制作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • js电信网通双线自动选择技巧

    js电信网通双线自动选择技巧

    网站打开的速度快是相当重要的baidu.com不管你是用的什么网络,都打开的很快
    2008-11-11
  • Webpack提取页面公共资源的实现

    Webpack提取页面公共资源的实现

    本文主要介绍了Webpack提取页面公共资源的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01

最新评论