JavaScript Cookie的读取和写入函数

下面我们来详细讲解如何读取和写入JavaScript Cookie。

下面我们来详细讲解如何读取和写入JavaScript Cookie。

什么是Cookie?

Cookie是在Web浏览器中存储的小数据文件。通常,当您第一次访问一个网站时,该网站将会创建一个Cookie,并存储在您的计算机上。当您访问该网站的其他页面时,该Cookie会被发送回该网站,以便它可以“记住”您的首选项或其他设置。

如何读取和写入Cookie?

写入Cookie

我们可以使用以下JavaScript代码来写入Cookie:

function setCookie(name, value, days) {
  var expires = "";
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toUTCString();
  }
  document.cookie = name + "=" + (value || "") + expires + "; path=/";
}

参数说明:
- name:要设置的Cookie的名称
- value:Cookie的值
- days:Cookie的生命周期,以天数为单位

例如,我们可以使用以下代码将名称为“username”的Cookie设置为“John”,生命周期为1天。

setCookie("username", "John", 1);

读取Cookie

我们可以使用以下JavaScript代码来读取Cookie:

function getCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

参数说明:
- name:要读取的Cookie的名称

例如,我们可以使用以下代码来获取名称为“username”的Cookie的值:

var username = getCookie("username");

如果Cookie存在,则键“username”将包含“John”;否则,键“username”将为空。

示例说明

示例1:写入和读取Cookie

以下代码将存储名称为“username”的Cookie,值为“John”,生命周期为1天。并使用getCookie函数读取该Cookie,并在控制台输出其值。

function setCookie(name, value, days) {
  var expires = "";
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toUTCString();
  }
  document.cookie = name + "=" + (value || "") + expires + "; path=/";
}

function getCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

setCookie("username", "John", 1);
var username = getCookie("username");
console.log(username); // 输出John

示例2:在不同子页面之间共享Cookie

以下代码演示了如何在不同的子页面之间共享Cookie。当我们在页面1上存储了Cookie时,我们可以在页面2上访问相同的Cookie。

页面1

function setCookie(name, value, days) {
  var expires = "";
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toUTCString();
  }
  document.cookie = name + "=" + (value || "") + expires + "; path=/";
}

setCookie("username", "John", 1);

页面2

function getCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

var username = getCookie("username");
console.log(username); // 输出John

注意:需要在两个页面上包含setCookie和getCookie函数定义。

本文标题为:JavaScript Cookie的读取和写入函数

基础教程推荐