document.cookie
来创建和存储Cookie。设置一个名为username
的Cookie,值为John Doe
,可以这样写:document.cookie = "username=John Doe";
。读取Cookie时,可以通过遍历document.cookie
字符串来获取特定Cookie的值。删除Cookie时,可以将它的过期时间设置为过去的时间。Javascript学习笔记(七)利用Javascript来创建和存储cookie
1. 什么是Cookie?
Cookie是存储在用户本地终端上的数据,通常用于保存状态信息,登录状态、购物车信息等。
2. Cookie的创建
在JavaScript中,我们可以通过document.cookie
属性来创建和访问cookie,以下是一个简单的示例:
// 创建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=/"; }
在这个例子中,我们定义了一个函数setCookie
,它接受三个参数:cookie的名称、值和过期天数,我们创建了一个新的日期对象,并设置了它的时间为当前时间加上过期的毫秒数,我们将这个日期转换为UTC字符串,并将其设置为cookie的过期时间。
3. Cookie的读取
我们也可以通过document.cookie
属性来读取cookie,以下是一个简单的示例:
// 读取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; }
在这个例子中,我们定义了一个函数getCookie
,它接受一个参数:cookie的名称,我们将document.cookie
分割成一个数组,并遍历这个数组,对于每个元素,我们删除前面的空格,然后检查它是否以给定的名称开始,如果是,我们就返回该元素的剩余部分(即cookie的值),如果没有找到匹配的元素,我们就返回null。
4. Cookie的删除
要删除一个cookie,我们可以将其过期时间设置为过去的时间,以下是一个简单的示例:
// 删除cookie function eraseCookie(name) { document.cookie = name+'=; Max-Age=-99999999; path=/'; }
在这个例子中,我们定义了一个函数eraseCookie
,它接受一个参数:cookie的名称,我们将cookie的过期时间设置为一个过去的日期,从而删除这个cookie。
相关问题与解答
问题1:如何在多个页面之间共享cookie?
答:Cookie默认情况下就是跨页面共享的,只要两个页面在同一个域下,它们就可以共享同一个cookie,你可以通过设置cookie的路径和域来控制cookie的共享范围,如果你只想让某个子域可以访问这个cookie,你可以这样设置cookie的路径和域:document.cookie = name + "=" + value + "; path=/; domain=subdomain.example.com"
。
问题2:如何保护cookie的安全性?
答:为了保护cookie的安全性,你应该始终使用HTTPS来传输cookie,你还可以使用HttpOnly属性来防止恶意的客户端脚本访问cookie,你可以这样设置cookie:document.cookie = name + "=" + value + "; HttpOnly"
,这样,只有服务器端的代码才能访问这个cookie,客户端的JavaScript代码无法访问。
以上就是关于“javascript学习笔记(七)利用javascript来创建和存储cookie-jav”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!