在JavaScript中,cookie可以只包含一个名称 –
值对。然而,存储多个名称 –
值对,我们可以用下面的办法: –
- 序列化自定义对象的JSON字符串,解析它,然后在Cookie中保存。
- 对于每个名称 – 值对,使用一个单独的cookie。
让我们看一个例子来检查cookie是否包含不止一个名称 – 值对。
<
!DOCTYPE html>
<
html>
<
head>
<
/head>
<
body>
Name: <
input type="text" id="name"><
br>
Email: <
input type="email" id="email"><
br>
Course: <
input type="text" id="course"><
br>
<
input type="button" value="http://www.srcmini.com/Set Cookie" onclick="setCookie()">
<
input type="button" value="http://www.srcmini.com/Get Cookie" onclick="getCookie()">
<
script>
function setCookie()
{
//Declaring 3 key-value pairs
var info="Name="+ document.getElementById("name").value+";
Email="+document.getElementById("email").value+";
Course="+document.getElementById("course").value;
//Providing all 3 key-value pairs to a single cookie
document.cookie=info;
}function getCookie()
{
if(document.cookie.length!=0)
{
//Invoking key-value pair stored in a cookie
alert(document.cookie);
}
else
{
alert("Cookie not available")
}
}
<
/script>
<
/body>
<
/html>
输出:
在点击获取Cookie的按钮,出现如下对话框。
在这里,我们可以看到,只有一个名称 – 值显示。
但是,如果你点击,获取cookie的时候没有填写表格,下面的对话框。
实例2
让我们看一个例子,不同的名称 – 值对存储在使用JSON的cookie。
<
!DOCTYPE html>
<
html>
<
head>
<
/head>
<
body>
Name: <
input type="text" id="name"><
br>
Email: <
input type="email" id="email"><
br>
Course: <
input type="text" id="course"><
br>
<
input type="button" value="http://www.srcmini.com/Set Cookie" onclick="setCookie()">
<
input type="button" value="http://www.srcmini.com/Get Cookie" onclick="getCookie()"><
script>
function setCookie()
{
var obj = {};
//Creating custom object
obj.name = document.getElementById("name").value;
obj.email = document.getElementById("email").value;
obj.course = document.getElementById("course").value;
//Converting JavaScript object to JSON string
var jsonString = JSON.stringify(obj);
document.cookie = jsonString;
}
function getCookie()
{
if( document.cookie.length!=0)
{
//Parsing JSON string to JSON object
var obj = JSON.parse(document.cookie);
alert("Name="+obj.name+" "+"Email="+obj.email+" "+"Course="+obj.course);
}
else
{
alert("Cookie not available");
}
}
<
/script>
<
/body>
<
/html>
输出:
在点击获取Cookie的按钮,出现如下对话框。
在这里,我们可以看到,所有存储的名称 – 值对被显示。
实例3
让我们看一个例子,每一个名称 – 值对存储在不同的Cookie。
<
!DOCTYPE html>
<
html>
<
head>
<
/head>
<
body>
Name: <
input type="text" id="name"><
br>
Email: <
input type="email" id="email"><
br>
Course: <
input type="text" id="course"><
br>
<
input type="button" value="http://www.srcmini.com/Set Cookie" onclick="setCookie()">
<
input type="button" value="http://www.srcmini.com/Get 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 not available");
}
}
<
/script>
<
/body>
<
/html>
输出:
在点击获取Cookie的按钮,出现如下对话框。
【JavaScript的Cookie有多个名称】在这里,我们也可以看到,所有存储的名称 – 值对被显示。
推荐阅读
- JavaScript的承诺Promise
- JavaScript的OOPS构造方法
- JavaScript的cookie的属性
- JavaScript的OOPS继承 – JavaScript教程 – srcmini
- JavaScript的OOPS封装
- JavaScript的OOPS原型对象
- JavaScript的严格模式
- JavaScript的提升
- JavaScript调试