好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

document.cookie

document.cookie

Cookie 是 一个 请求首部,其中含有先前由服务器通过 Set-Cookie 首部投放并存储到客户端的 HTTP cookies。

cookie 可以作为单独知识了解,这里其实介绍的是 document.cookie 。

1. document.cookie

通过 document.cookie 可以 获取 与设置 cookie 。

 document . cookie ; 
 

通过 document.cookie 获取 到的 cookie 由 cookie 的 名称 和值组成,由等号 = 分隔,并且可以有多条,每条 cookie 之间用分号 ‘;’ 分隔。

3. 设置cookie

  var  cookie  =   'cookie 名称 =cookie值'  ; 

document . cookie  =  cookie ; 
 

设置 cookie 采用 键值对 的形式。

对应的就是 cookie的 名称 和 cookie值 。

每次只能设置一条 cookie ,但可以同时设置这条 cookie的 属性 。

如果需要设置多条 cookie ,则再次给 document.cookie 赋 一个 新值即可,但如果是相同 名称 的 cookie ,值就会被覆盖。

设置 cookie 的同时可以设置这条 cookie 的 属性 。

 document . cookie  =   ' 名称 =值;  属性 1= 属性 值1;  属性 2= 属性 值2'  ; 
 

看起来是可以设置多条 cookie 一样,其实只有第一对值才是 cookie 的值,后面跟的都是这条 cookie 的 属性 。

可以跟随的 属性 有:

path cookie 生效的路径 domain cookie 生效的域名 max-age 过期时间,单位是秒 expires 过期时间,为 一个 UTC 时间 secure 是否只能通过 https 来传递这条 cookie

这些 属性 具体作用可以参考 cookie 相关的 内容 。

设置完 属性 可以通过开发者工具查看。

在开发者工具的 Application 面板, cookie 分类 下,每一条 cookie 都可以看到对应的 属性 。

5. 注意点

由于设置 cookie 是具有一定格式的,所以不能有字符来干扰这个格式。

  var  cookie  =   'code=var a = 1; var b = 2;'  ; 

document . cookie  =  cookie ; 
 

这种情况下,cookie 就不符合预期了,被切断。

cookie 中不应该含有空格、分号、逗号这些符号。

借助 encodeURIComponent 方法 ,对 cookie 的值进行编码就可以避免这类问题。

  var  cookie  =   'code='   +   encodeURIComponent  (  'var a = 1; var b = 2;'  )  ; 

document . cookie  =  cookie ; 
 

后续需要使用到这一条 cookie 的地方,再做一次解码操作即可。

注意:对字符串编码还可以使用 escape 方法 ,但已经从标准中移除,目前浏览器虽然还 支持 这个 方法 ,但无法保证永远会保留这个 方法 ,最好避免使用 escape 方法 。

6. 小结

随着前端存储方案的 增加 ,前端程序员访问 document.cookie 相对曾经减少了很多。

给 document.cookie 赋值可以 增加 一条 cookie,同时通过 ; 相隔,来设置这条 cookie 的 属性 。

当设置的 cookie 带有特殊字符的时候,如 ; 或者 = ,应采用 encodeURIComponent 对 内容 编码,建议所有的 cookie 都进行编码。

JavaScript Function ? ?JavaScript with

查看更多关于document.cookie的详细内容...

  阅读:39次

上一篇

下一篇

第1节:什么是 JavaScript    第2节:学习环境准备    第3节:调试方案    第4节:JavaScript 变量    第5节:JavaScript 数据类型    第6节:JavaScript if 语句    第7节:for 语句    第8节:JavaScript 算数运算符    第9节:JavaScript 比较运算符    第10节:JavaScript 逻辑运算符    第11节:JavaScript 函数    第12节:JavaScript 表达式    第13节:JavaScript 对象    第14节:JavaScript 字符串    第15节:JavaScript 数字    第16节:JavaScript 数组    第17节:JavaScript switch 语句    第18节:JavaScript while 语句    第19节:JavaScript 的 break 与 continue    第20节:JavaScript with    第21节:document.cookie    第22节:JavaScript Function    第23节:JavaScript Math    第24节:JavaScript Date    第25节:JavaScript RegExp    第26节:JavaScript JSON    第27节:什么是 DOM    第28节:DOM 和 JavaScript 的关系    第29节:获取和操作 DOM 节点    第30节:DOM 与事件    第31节:DOM 事件绑定    第32节:DOM 事件对象    第33节:DOM 事件流    第34节:事件相关的优化    第35节:自定义事件    第36节:表单校验    第37节:什么是 BOM    第38节:常用的 BOM 相关对象    第39节:BOM 常用属性和方法    第40节:AJAX    第41节:异常处理    第42节:三元运算符    第43节:逗号操作符    第44节:void    第45节:typeof    第46节:delete 操作符    第47节:debugger    第48节:getter & setter    第49节:new 运算符与构造函数    第50节:JavaScript 原型    第51节:JavaScript instanceof    第52节:JavaScript this    第53节:严格模式    第54节:作用域    第55节:闭包    第56节:变量提升    第57节:对象包装器    第58节:Lodash    第59节:moment    第60节:swiper    第61节:ECMAScript 6    第62节:Node.js    第63节:Babel    第64节:CSS 预处理器    第65节:代码规范    第66节:TypeScript    第67节:WebComponents    第68节:Vue、React、Angular    第69节:小程序    第70节:JavaScript 关键字    第71节:分号导致的问题    第72节:对象属性访问问题    第73节:this 使用问题    第74节:浮点数精度问题    第75节:独一无二的 NaN    第76节:避免全局污染    第77节:控制台观察对象问题    第78节:根据环境选择语言特性    第79节:相关资源