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

对于“javascript结合Cookies实现浏览记录历史第1/3页”的完整攻略,以下为具体步骤:

1. 添加Cookie操作函数

在JavaScript中,需要先定义一些操作Cookie的函数。下面是一个可以添加、获取和删除Cookie的示例代码:

// 添加Cookie
function setCookie(name, value, expires) {
  var exp = new Date();
  exp.setTime(exp.getTime() + expires * 24 * 60 * 60 * 1000);
  document.cookie = name + "=" + value + ";expires=" + exp.toGMTString();
}

// 获取Cookie
function getCookie(name) {
  var arr;
  var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  if (arr = document.cookie.match(reg)) {
    return unescape(arr[2]);
  }
  else {
    return null;
  }
}

// 删除Cookie
function delCookie(name) {
  var exp = new Date();
  exp.setTime(exp.getTime() - 1);
  var cval = getCookie(name);
  if (cval != null) {
    document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
  }
}

2. 保存浏览记录

然后,在浏览器中打开网页时,可以利用上面定义的添加Cookie函数保存浏览记录。比如,可以在每次访问页面时,将该页面的URL保存到一个名为"history"的Cookie中,使用"|"符号进行分隔。

// 保存浏览记录
var url = location.href;
var storedUrls = getCookie('history');
if (storedUrls == null) {
  setCookie('history', url, 7);
}
else {
  var urls = storedUrls.split('|');
  if (urls.indexOf(url) == -1) {
    urls.unshift(url);
    setCookie('history', urls.join('|'), 7);
  }
}

在上面的代码中,首先获取当前页面的URL,然后获取名为"history"的Cookie中保存的所有URL,如果Cookie不存在,则创建一个新的Cookie,并且将当前URL保存到该Cookie中。如果Cookie已经存在,则将其所有URL保存到数组中,如果当前页面的URL不在该数组中,则将其添加到数组中,并且将新的URL数组保存到Cookie中。

3. 显示浏览记录

接下来,需要在网页中添加代码,从名为"history"的Cookie中获取浏览记录,并将其显示在页面上。在示例代码中,我们将浏览记录显示在一个DIV元素中:

// 显示浏览记录
var urls = storedUrls.split('|');
var html = '';
for (var i = 0; i < urls.length; i++) {
  if (i % 3 == 0) {
    html += '<br><b>Page ' + (i / 3 + 1) + '</b><br>';
  }
  html += '<a href="' + urls[i] + '">' + urls[i] + '</a><br>';
}
document.getElementById('historyDiv').innerHTML = html;

在上面的代码中,首先将存储在Cookie中的浏览记录字符串按照"|"分隔成数组。然后,使用一个循环逐个处理每一个URL,并且将其显示在DIV元素中。在显示URL的过程中,每显示3个URL,我们就加入一个"Page X"的标题,以便用户更好地区分不同的浏览页面。

示例1:添加Cookie

假设网页中的某个按钮被单击时,需要将一个文本框中的内容保存到Cookie中。可以使用以下代码:

// 保存文本框中的内容到Cookie中
var value = document.getElementById('textBox').value;
setCookie('textValue', value, 30);

在上面的代码中,我们首先获取一个ID为"textBox"的文本框的值,然后使用添加Cookie的函数将该值保存到Cookie中,Cookie名为"textValue",有效期为30天。

示例2:删除Cookie

假设网页中需要一个删除Cookie的按钮,当用户单击该按钮时,需要删除名为"history"的Cookie。可以使用以下代码:

// 删除Cookie
delCookie('history');

在上面的代码中,我们使用delCookie函数删除名为"history"的Cookie。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript结合Cookies实现浏览记录历史第1/3页 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • js中json处理总结之JSON.parse

    JSON.parse() 是 JavaScript 中一个用于将 JSON 字符串转换成 JavaScript 对象的方法,它的语法如下: JSON.parse(text [, reviver]) 其中,text 是要转换的 JSON 字符串;reviver 是一个可选的转换函数,用于对最终生成的对象进行处理。 当我们从后台或其他来源获取到 JSON 数据时…

    JavaScript 2023年5月27日
    00
  • 实现javascript的延期执行或者重复执行的两个函数

    实现 JavaScript 的延期执行或重复执行,常用两个函数:setTimeout 和 setInterval。以下是详细攻略: setTimeout setTimeout 函数可以延迟指定时间后执行一次函数。 该函数的第一个参数是要执行的函数或要执行的代码,第二个参数是需要延迟的时间,单位是毫秒。 setTimeout 函数返回一个 ID,我们可以通过该…

    JavaScript 2023年6月10日
    00
  • JavaScript Math对象和调试程序的方法分析

    针对“JavaScript Math对象和调试程序的方法分析”的详细讲解,我会分别进行介绍。 JavaScript Math 对象 在 JavaScript 中,Math 是一个内置的全局对象,用于执行常见的数学运算。以下是 Math 对象的一些常见方法: 1. Math.round() Math.round() 方法可把一个数字四舍五入为最接近的整数。 示…

    JavaScript 2023年5月27日
    00
  • JavaScript 数组的进化与性能分析

    JavaScript 数组的进化与性能分析 简介 JavaScript 中的数组是一种常用的数据结构,用于存储一组有序的数据。在 JavaScript 数组的进化过程中,出现了多种不同的实现方式,每种实现方式都有其优缺点。本文将简要介绍 JavaScript 数组的进化历程,并根据不同实现方式对其性能进行分析和比较。 传统数组实现 最早的 JavaScrip…

    JavaScript 2023年5月27日
    00
  • JavaScript防抖动与节流处理

    JavaScript中防抖动和节流是常用的优化技术,用于优化页面交互和性能,下面将详细介绍防抖动和节流的实现原理以及应用场景。 什么是防抖动 在JavaScript处理页面事件时,比如按钮点击事件,如果用户频繁点击,则会导致事件的重复执行,从而浪费资源并影响用户体验。防抖动的作用是将这些重复的事件的执行合并为一次执行,从而优化页面性能。 实现原理:防抖动的原…

    JavaScript 2023年6月11日
    00
  • JS实现匀速与减速缓慢运动的动画效果封装示例

    下面我将详细讲解如何实现 JS 实现匀速与减速缓慢运动的动画效果封装。 1. 匀速缓动动画 步骤如下: 获取元素的起始位置和目标位置 计算元素移动的距离和移动的总时间 每个时间间隔移动元素的距离 将元素移动到目标位置 示例代码: /** * @param {HTMLElement} el * @param {number} target * @param {…

    JavaScript 2023年6月10日
    00
  • js无痛刷新Token的实现

    当我们使用前后端分离的架构时,前端需要向后端服务器发送API请求获取数据,而前端需要在每次请求时,将后端返回的Token设置在请求的Header中。Token是用来验证用户身份的,它的有效期是有限的,过期后需要重新向服务器获取。在这种情况下,我们需要处理Token过期的问题。下面,我将提供一个JS无痛刷新Token的实现的完整攻略: Step1:在前端存储T…

    JavaScript 2023年5月19日
    00
  • Javascript Global undefined 属性

    JavaScript中的undefined是一个全局属性,表示一个未定义的值。如果一个变量没有被赋值,则该变量的值为undefined。以下是关于undefined全局属性的完整攻略,包括两个示例。 JavaScript Global对象中的undefined属性 JavaScript Global对象中的undefined属性表示一个未定义的值。如果一个变…

    JavaScript 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部