在JavaScript中,一个Cookie只能包含一个单一的名称-值对。但是,要存储多个名称-值对,我们可以使用以下方法:

  • 将自定义对象序列化为JSON字符串,然后解析并存储在Cookie中。
  • 对于每个名称-值对,使用单独的Cookie。

存储名称-值对的示例

示例1

让我们看一个示例,以检查一个Cookie是否包含多个名称-值对。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
  名称:<input type="text" id="name"><br>
  邮件:<input type="email" id="email"><br>
  课程:<input type="text" id="course"><br>
  <input type="button" value="设置Cookie" onclick="setCookie()">
  <input type="button" value="获取Cookie" onclick="getCookie()">
  <script>
    function setCookie() { 
      var info = "Name=" + document.getElementById("name").value + ";Email=" + document.getElementById("email").value + ";Course=" + document.getElementById("course").value; 
      document.cookie = info; 
    } 
    
    function getCookie() { 
      if (document.cookie.length != 0) { 
        alert(document.cookie); 
      } else { 
        alert("Cookie不可用"); 
      } 
    }
  </script>
</body>
</html>

输出:

1.png

点击“获取Cookie”按钮,将显示下面的对话框。

2.png

在这里,我们可以看到只显示了一个单一的名称-值对。

然而,如果在不填写表单的情况下点击“获取Cookie”,将显示下面的对话框。

3.png

示例2

让我们看一个示例,使用JSON在Cookie中存储不同的名称-值对。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
  名称:<input type="text" id="name"><br>
  邮件:<input type="email" id="email"><br>
  课程:<input type="text" id="course"><br>
  <input type="button" value="设置Cookie" onclick="setCookie()">
  <input type="button" value="获取Cookie" onclick="getCookie()">
  <script>
    function setCookie() { 
      var obj = {}; 
      obj.name = document.getElementById("name").value; 
      obj.email = document.getElementById("email").value; 
      obj.course = document.getElementById("course").value;
      var jsonString = JSON.stringify(obj); 
      document.cookie = jsonString; 
    } 
    
    function getCookie() { 
      if (document.cookie.length != 0) { 
        var obj = JSON.parse(document.cookie); 
        alert("Name=" + obj.name + " Email=" + obj.email + " Course=" + obj.course); 
      } else { 
        alert("Cookie不可用"); 
      } 
    }
  </script>
</body>
</html>

输出:

点击“获取Cookie”按钮,将显示下面的对话框。

4.png

在这里,我们可以看到所有存储的名称-值对都被显示出来。

示例3

让我们看一个示例,将每个名称-值对存储在不同的Cookie中。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
  名称:<input type="text" id="name"><br>
  邮件:<input type="email" id="email"><br>
  课程:<input type="text" id="course"><br>
  <input type="button" value="设置Cookie" onclick="setCookie()">
  <input type="button" value="获取Cookie" onclick="getCookie()">
  <script>
    function setCookie() { 
      document.cookie = "name=" + document.getElementById("name").value; 
      document.cookie = "email=" + document.getElementById("email").value; 
      document.cookie = "course=" + document.getElementById("course").value;
    } 
    
    function getCookie() { 
      if (document.cookie.length != 0) { 
        alert("Name=" + document.getElementById("name").value + " Email=" + document.getElementById("email").value + " Course=" + document.getElementById("course").value); 
      } else { 
        alert("Cookie不可用"); 
      } 
    }
  </script>
</body>
</html>

输出:

5.png

点击“获取Cookie”按钮,将显示下面的对话框。

6.png

在这里,同样我们可以看到所有存储的名称-值对都被显示出来。

标签: js, JavaScript, JavaScript语言, JavaScript开发, JavaScript语法, JavaScript脚本, JavaScript教程, JavaScript入门, JavaScript入门教程, JavaScript进阶, JavaScript宝典, JavaScript学习, JavaScript指南, JavaScript大全