js中实现cookie的增删改查(document.cookie的使用详情)
一、设置cookie的值
1、每个cookie都是一个名称/值对,名称/值对用等号连接,并将该名称/值对赋值给document.cookie即可。如:document.cookie="id=77";
2、如果要一次存储多个名称/值对,可以使用分号加空格隔开。如:document.cookie="id=77; name=bill";
在cookie的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。如果想存入这些值,我们可以使用escape()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“%20”,从而可以存储于cookie值中。
例如:
document.cookie="str="+escape("Hello World");
相当于:
document.cookie="str=Hello%20World";
当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值。
3、document.cookie可以赋不同的值,如:
document.cookie="id=77";
document.cookie="name=bill";
这时浏览器将维护两个cookie,分别是id和name
二、修改cookie的值
如果要改变一个cookie的值,只需重新赋值,例如:document.cookie="id=88";
这样cookie中id的值就变成成了88
三、获取cookie的值
cookie的值可以由document.cookie直接获得:var strCookie=document.cookie;
如果是一次存入多个名称/值对,可以将获取到的字符串进行遍历。
例://添加cookie
document.cookie="id=77; name=bill";
//获取存入到cookie的值,strCookie的值就为 id=77;name=bill
var strCookie=document.cookie;
//写个方法进行遍历
function getCookieValue(name) {
var strCookie=document.cookie;
var arrCookie=strCookie.split(";");
for(var i=0;i<arrCookie.length;i++){
var c=arrCookie[0].split("=");
if(c[0]==name){
return c[1];
}
}
return "";
}
该方法可以根据存入cookie的名称,获取对应的值。如getCookieValue("name"),得到结果就是bill
四、给cookie设置终止时间
cookie都是单会话的,即浏览器关闭后这些cookie将会丢失,事实上这些cookie仅仅是存储在内存中,而没有建立相应的硬盘文件。
在实际开发中,cookie常常需要长期保存,例如保存用户登录的状态。这可以用下面的选项来实现:
document.cookie="userId=828; expires=GMT_String";
这样可以设置cookie在这个时间内都是有效的。
例:设置cookie的有效时间是10分钟
//获取当前时间
var date=new Date();
var expireDays=10;
//将date设置为10天以后的时间
date.setTime(date.getTime()+expireDays*60*1000);
//将id和name两个cookie设置为10天后过期
document.cookie="id=77; name=bill; expires="+date.toUTCString();
五、删除cookie
直接将cookie的有效时间设置成过去即可。如
var date=new Date();
date.setTime(date.getTime()-1000)
document.cookie="id=77; name=bill; expires="+date.toUTCString();
js中实现cookie的增删改查(document.cookie的使用详情)的更多相关文章
- node.js中对 mysql 进行增删改查等操作和async,await处理
要对mysql进行操作,我们需要安装一个mysql的库. 一.安装mysql库 npm install mysql --save 二.对mysql进行简单查询操作 const mysql = requ ...
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...
- 在ASP.NET MVC4中实现同页面增删改查,无弹出框02,增删改查界面设计
在上一篇"在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建"中,已经搭建好了Repository层,本篇就剩下增删改查的界面了......今 ...
- 用 JS(JavaScript )实现增删改查
JS小例题 学习内容: 需求 总结: 学习内容: 需求 用 JavaScript 实现简单增删改查 实现代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HT ...
- 用CI框架向数据库中实现简单的增删改查
以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html Code ...
- Selenium入门13 cookie的增删改查
cookie的增删改查: 查询:get_cookies()查询所有cookie,get_cookie(cookie的name)获取单个cookie 删除:delete_cookie(cookie的na ...
- java程序设计课期中考试——数据库的增删改查和简单的js界面
首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...
- 使用JS对HTML标签进行增删改查
以下为通过JS对li标签进行简单的增删改查: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...
- MVC中的Ajax与增删改查
自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...
随机推荐
- UnicodeString基本操作(Ring3)
// Unicode_String_Ring3.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "Unicode ...
- 修改了jdk在环境变量中的路径怎么cmd中的jdk版本没有变
把path路径下的jdk配置放在前面%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot ...
- 00004 - CentOS 7下安装pptp服务端
主要配置步骤 1. 安装前检查系统支持 a. 在安装之前查看系统是否支持PPTP modprobe ppp-compress-18 && echo success 应该输出:succe ...
- 00004 - test命令详解
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. -------------------------------------------------- ...
- springboot+mybatis整合(单元测试,异常处理,日志管理,AOP)
我用的事IDEA,jdk版本是1.7.新建项目的时候这个地方的选择需要注意一下,springboot版本是1.5的,否则不支持1.7的jdk pom.xml <dependency> &l ...
- CSS便捷开发小工具汇总
1.Prefix free 可以帮助开发者省去编写各种CSS3属性前缀的工作,只需要在页面中引入prefixfree.js即可. 2. Normalize 是一个CSS Reset工具, 相比传统的R ...
- Linux性能优化 第一章 性能追踪建议
1.1常用建议1.1.1记大量的笔记(记录所有的事情)在做性能调优问题的时候很重要的一个操作就是记录下所有的事情,包括每一个输出.执行的结果.可以新建一个文件夹,然后把结果的文件都塞到该文件夹内.包括 ...
- php引用变量
引用变量:在php中引用意味着用不同的名字访问同一个变量内容 定义方式:& 总结:$b=&$a其中$b是取到了$a的地址,随着$a的地址变化,不会重新开辟空间可以根据他们的内存占用情况 ...
- crawlspider 多分页处理
提问:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法二:基 ...
- 关于QT_Creator不能在线调试问题
电脑:W7+64位,QT:5_7_0(vs2015版本) 用QTcreator进行在线调试时出现找不到“engine...”,原因是没有在线调试软件 CDB下载地址:http://msdn.micro ...