用javascript结合Cookies记录浏览历史(2)
作者:satellite 来源:achome.cn 时间:2008-02-12 12:37:00
下面就结合程序给大家一步一步讲解(程序难免有不合理之处,希望大家多多指正,共同进步):
第一部分: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函数
第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;
}
//将浏览动作写入cookie
function 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="对不起,您没有任何浏览纪录";}
}
代码差不多就是这些了 就为大家分析到这里 还有不足之处还请大家多多指教 下面可以运行代码查看效果
查看效果
标签:Cookies,浏览,历史,javascript
0
投稿
猜你喜欢
Python爬虫爬取博客实现可视化过程解析
2023-12-16 08:58:33
如何不通过DSN访问SQL Server?
2009-11-11 19:21:00
asp日期转换成汉字格式程序
2008-07-08 18:19:00
Python实现冒泡,插入,选择排序简单实例
2022-01-07 06:47:25
SQL Server 2005恢复数据库详细图文教程
2024-01-14 10:18:02
PL/SQL中编写Oracle数据库分页的存储过程
2024-01-16 08:50:24
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2024-04-18 10:03:09
python绘制堆叠条形图介绍
2021-07-01 23:12:36
MySQL sql_mode修改不生效的原因及解决
2024-01-25 03:32:48
关于Python网络爬虫框架scrapy
2023-03-17 17:02:50
十个Golang开发中应该避免的错误总结
2024-04-25 15:05:14
Python注释详解
2023-07-17 06:48:17
Keras搭建孪生神经网络Siamese network比较图片相似性
2023-01-27 04:16:28
flash 挡住层的解决方法
2022-09-01 17:24:39
mybatis+mysql 使用存储过程生成流水号的实现代码
2024-01-18 11:09:56
火狐浏览器:浏览数据新方式(附模拟图)[译]
2009-04-23 10:51:00
Vue3中的极致防抖/节流详解(附常见方式防抖/节流)
2024-05-08 10:12:37
ASP分段读取数据库代码
2009-10-12 12:28:00
微信跳一跳python辅助脚本(总结)
2023-01-04 00:56:23
SQL Server中查询结果超出了查询时间范围解决方法
2024-01-18 04:05:54