/*** history_teacher.jsp中的js,最近浏览名师* @version: 1.0* @author: mingming*/
$(function(){getHistory();
});var historyCount=4; //保存历史记录个数/*** 增加浏览历史记录* @param id 编号* @param name 姓名* @param photo 照片* @param grade 年级* @param subject 科目* @return*/
function setHistory(id,name,photo,grade,subject){stringCookie=getCookie('history');var stringHistory=""!=stringCookie?stringCookie:"{history:[]}";var json=new JSONHistory(stringHistory);  //转成jsonvar list = json['history'];  //获得jsonfor (var i = 0; i < list.length; i++) {try {if(list[i].id == id){list.splice(i,1); //删除重复数据,开始位置,删除个数i=i-1; //下标归位}} catch (e) {break;}}if(list.length>=historyCount){//删除最开始的多余记录var count = list.length - historyCount + 1; //需要删除的个数list.splice(0,count); //开始位置,删除个数}var e="{id:'"+id+"',name:'"+name+"',photo:'"+photo+"',grade:'"+grade+"',subject:'"+subject+"'}";json['history'].push(e);//添加一个新的记录setCookie('history',json.toString(),365); //365天
}/*** 获得浏览历史记录* @return*/
function getHistory(){var historyJSON=getCookie('history');if(historyJSON==""){}else{var data = eval("("+historyJSON+")");var history = data['history']; //历史记录var length = history.length;if(length > historyCount){length = historyCount;}//从最后一个浏览记录开始获取var historyHtml="";for ( var i = length-1; i >= 0; i--) {historyHtml+='<dd>'+'<ul>'+'<li class="recimg"><a href="'+PATH+"/teacher/teacherinfo?teacherVO.teacherId="+history[i].id+'"><img src="'+PATH + "/"+ history[i].photo +'" alt="" /></a></li>'+'<li class="recinfo">'+'<p><a href="'+PATH+"/teacher/teacherinfo?teacherVO.teacherId="+history[i].id+'">'+history[i].name+'</a></p>'+'<p class="grayp">科目:'+history[i].subject+'</p>'+'<p class="grayp">年级:'+history[i].grade+'</p>'+'</li>'+'</ul>'+'</dd>';}if(historyHtml!=""){$("#historyTeacher").html('<h2>最近浏览名师</h2><dl>'+historyHtml+'</dl>');}}
}/*** 添加cookie* @param cookName cookie名称* @param cookName cookie值* @param expiredays 时长*/
function setCookie(cookName,cookValue,expiredays){var exdate=new Date();exdate.setDate(exdate.getDate()+expiredays*24*3600*1000);var cookieVal=cookName+ "=" +escape(cookValue)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString())+";path=/";document.cookie=cookieVal;
}/*** 获取cookie* @param cookName cookie名称* @return*/
function getCookie(cookName)
{if(document.cookie.length>0){var c_start = document.cookie.indexOf(cookName + "=");if(c_start!=-1){ //存在c_start = c_start + cookName.length + 1; //"history="后的开始位置var c_end=document.cookie.indexOf(";",c_start); //找到JSESSIONID在的位置if (c_end==-1){ //JSESSIONID不存在c_end=document.cookie.length;}return unescape(document.cookie.substring(c_start,c_end));} }return "";
}/*** JSON*/
var JSONHistory = function(sJSON){this.objType = (typeof sJSON);if(this.objType=='string' && ''==sJSON){sJSON = '{history:[]}' ;}this.self = [];(function(s,o){for(var i in o){o.hasOwnProperty(i)&&(s[i]=o[i],s.self[i]=o[i])};})(this,(this.objType=='string')?eval('0,'+sJSON):sJSON);
};
JSONHistory.prototype = {toString:function(){return this.getString();},valueOf:function(){return this.getString();},getString:function(){var sA = [];(function(o){var oo = null;sA.push('{');for(var i in o){if(o.hasOwnProperty(i) && i!='prototype'){oo = o[i];if(oo instanceof Array){sA.push(i+':[');for(var b in oo){if(oo.hasOwnProperty(b) && b!='prototype'){sA.push(oo[b]+',');if(typeof oo[b]=='object') arguments.callee(oo[b]);}}sA.push('],');continue;}else{sA.push(i+':\''+oo+'\',');}if(typeof oo=='object') arguments.callee(oo);}}sA.push('},');})(this.self);return sA.slice(0).join('').replace(/\[object object\],/ig,'').replace(/,\}/g,'}').replace(/,\]/g,']').slice(0,-1);},push:function(sName,sValue){this.self[sName] = sValue;this[sName] = sValue;}
};

中间对于把历史记录转换为json格式有更简便的方法。这个是个单独案例。

页面引入js,增加浏览历史记录调用

setHistory(id,name,photo,grade,subject)

cookie参数设置:

path:

是相对于应用服务器存放应用的文件夹的根目录而言的(比如tomcat下面的webapp),因此cookie.setPath("/");之后,可以在webapp文件夹下的所有应用共享cookie

测试结果:不设置,则当前目录下所有页面可以访问,设置”/“后,所有页面都可以访问

domain:

  在www.baidu.com中设置的cookie,但需要在zhidao.baidu.com下获取,这样就需要Cookie的setDomain()方法了。cookie.setPath("/");cookie.setDomain("baidu.com");//只给出域名的相同部分

cookie参数设置参考文档:

setPath和setCookie具体用法

js操作Cookie,实现历史浏览记录相关推荐

  1. easyui onclickrow 中获取列名_获取Chrome浏览器历史浏览记录实例

    1.获取谷歌浏览器浏览历史保存位置,并拷贝一份到操作目录下2.找到浏览记录文件 "History"3.将"History"文件导出到其他目录下4.查看数据库ta ...

  2. jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档。

    jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档. jquery.cookie中的操作: jquery.cookie.js是一个基于jquer ...

  3. Django中--使用redis存储历史浏览记录

    class UserInfoView(LoginRequiredMixin, View):'''用户中心-信息页'''def get(self, request):'''显示'''# Django会给 ...

  4. position:搜索框显示历史浏览记录

    absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", "righ ...

  5. 使用redis存储历史浏览记录

    使用redis存储历史浏览记录 核心是分析流程 1.什么时候需要添加历史浏览记录? 访问具体商品详情页面时 2.什么时候需要获取历史浏览记录? 根据具体情况而定 3.存储在哪? redis数据库,如果 ...

  6. Redis添加历史浏览记录

    参考资料 http://redisdoc.com/index.html http://redis-py.readthedocs.io/en/latest/#indices-and-tables 1.什 ...

  7. 【JSP篇】——cookie之商品浏览记录的实现:4.显示商品的详细信息

    学习上一节:3.显示当前所有的商品效果与功能的实现 学习下一节:5.cookie实现前五条浏览记录 1.功能介绍 前面我们实现了商品所有信息的显示,接下来要实现某一商品详细信息的显示.那么我们就要思考 ...

  8. JS 操作cookie

    平时网站的开发中cookie用的还是用的比较多的,因为cookie在客户端,所以用js操作的比较多,下面是常用的设置.查找.删除等功能实现. function addCookie(objName, o ...

  9. 【01】网页中清除历史浏览记录能不能彻底删除浏览记录?

    不能-- 即便你把记录全删了,也可用数据恢复工具给你找回来: 即便你用专业工具覆盖N遍,确保数据无法恢复,网站那头还记着哪个ip什么时候访问过哪些内容呢--然后跑ISP(联通或电信)一查,xx时间xx ...

最新文章

  1. 从Elasticsearch来看分布式系统架构设计,真是666~
  2. 计算机的主要硬件部件,主要内容: 计算机的基本概念 系统硬件组成(主要部件、系...的.ppt 文档全文预览...
  3. 逆向知识十三讲,汇编中数组的表现形式,以及还原数组
  4. C/C++ 面试题基础知识
  5. form触发2次 layui_Springboot+layui上传文件携带参数前后台代码
  6. Ajax方法实现登录页面
  7. BZOJ1008[HNOI2008] 越狱
  8. GD32库中常用的位操作REGIDX_BIT(regidx, bitpos)
  9. 前端骨架屏方案与实践
  10. 抖音账号如何做好私域流量,私域流量是什么
  11. 微信气泡主题设置_微信气泡主题设置方法
  12. 从一到无穷大:科学中的事实和臆测 (G. 伽莫夫 著)
  13. C语言/C++编程学习:栈的代码实现之数组方案
  14. Veins/OMNeT/SUMO:SUMO坐标转Veins项目地图中的坐标
  15. Javascript静态变量与实例变量
  16. 图像处理-3 彩色空间互转
  17. 慈爱的教育部门被误解了 --- 真正减负令的实施方案探讨
  18. sea.js简单配置
  19. 【Java经典小游戏】大鱼吃小鱼 (两万字保姆级教程)
  20. 从一篇知乎问答引发的Web地图探索

热门文章

  1. bids格式数据中config文件的编写
  2. (莱昂氏unix源代码分析导读-47) exec
  3. nginx+https+自签名+各种云dns解析+浏览器安全可用include相对路径和绝对路径
  4. 【深度学习】python实现等距随机抽样
  5. 2020科目一考试口诀_科目一考试技巧口诀顺口溜大全,看一遍就能记住,轻松一次过!...
  6. python import相对引用和绝对引用
  7. python修改电脑名称_windows更改计算机名称
  8. 香港公司、香港离岸公司和岛屿公司3者区别
  9. 美通社企业新闻汇总 | 2019.1.15 | 深圳成为中国大陆第三大办公楼市场,台湾珍珠鲜奶茶Sharetea引进上海...
  10. 寒假2018培训:DAY1