javscript对cookie的操作,以及封装
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
用户名:<input type="text" name="user" id="user">
年龄:<input type="text" name="age" id="age">
<input type="button" name="" value="提交" id="btn">
</body>
</html>
JS代码
<script type="text/javascript">
// 设置cookie
function setCookie(){
// 获取当前时间
var date = new Date(); // 支持传一个json {name:value}
var a = arguments;
if(a.length==2){
// 设置过期时间 = 当前时间 + 过期时间;
date.setDate(date.getDate()+a[1]);
for(k in a[0]){
document.cookie = k +"="+ encodeURI(a[0][k]) +";expires=" + date.toGMTString()+";path=/";
}
}else{
date.setDate(date.getDate()+a[2]);
// 设置cookie = 值=value encodeURI(把值进行编码) expires设置过期时间 path设置网站目录访问cookie权限,/表示当前域名下的所有目录都可以访问这个cookie
document.cookie = a[0] +"="+ encodeURI(a[1]) +";expires=" + date.toGMTString()+";path=/";
}
}
// 读取cookie
function readCookie(name){
// 获取cookie decodeURI把cookie进行解码
var cookie = decodeURI(document.cookie);
// 获取当前名称的起始索引
var start = cookie.indexOf(name+'=');
// 如果找不到这个名称的话就直接返回;
if(start==-1)return '';
// 获取结束索引,start表示开始查找的起点
var end = cookie.indexOf(';',start);
// 如果返回-1说明是最后一条数据
if(end==-1){
// 最后一条直接截取到末尾
return cookie.substring(start+name.length+1);
}
// 如果不是末尾的话截取到;
return cookie.substring(start+name.length+1,end);
}
// 删除cookie
function removeCookie(name){
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/";
} // 写入cookie
var oBtn = document.getElementById('btn');
oBtn.onclick = function(){
var user = document.getElementById('user').value;
var age = document.getElementById('age').value;
// 设置cookie
setCookie({
'user':user,
'age':age
},10);
}; // 打印cookie
console.log(readCookie('user'));
</script>
使用方法:
设置cookie:setCookie()支持传递2个或3个参数 json&&time || nam&&value&&time json:{name:value},time:多久过期
读取cookie:readCookie(要读取的cookie名称)
删除cookie:removeCookie(要删除的cookie名称)
以上也是闲来无事写的,仅供参考,如果有不懂的可以在下方留言,如果多人需要帮助的话我再另外开一片文章专门讲。
javscript对cookie的操作,以及封装的更多相关文章
- java对cookie的操作
java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题. 建立一个无生命周期的cookie,即随着浏览器的关闭即 ...
- Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- 原生js--cookie操作的封装
封装cookie的操作:查询cookie个数.查询所有cookie的键.获取cookie.设置cookie.删除cookie.清除全部cookie /** * cookieStorage */func ...
- js 第四章 cookie的操作
js 第四章 cookie的操作 一.学习要点 掌握cookie的简单应用 二. js 第四章 cookie的操作 了解cookie 什么是cookie? cookie 是存储于访问者的计算机中的变量 ...
- jquery.cookie.js 操作cookie实现记住密码功能的实现代码
jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下. 复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...
- Jquery对Cookie的操作
第一步:先引用jQuery的插件jquery-1.9.1.min.js 第二步:引用jquery.cookie.js插件 下对cookie的操作: $.cookie("cookieName& ...
- PHP中对数据库操作的封装
在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使 ...
- c#读写共享内存操作函数封装
原文 c#读写共享内存操作函数封装 c#共享内存操作相对c++共享内存操作来说原理是一样,但是c#会显得有点复杂. 现把昨天封装的读写共享内存封装的函数记录下来,一方面希望给需要这块的有点帮助,另一方 ...
- C# .NET更智能的数据库操作的封装
前述: 对数据库操作的封装,相信网络上已经有一大堆,ORM框架,或者是.NET本身的EF,都很好的支持数据库操作.这篇文章是分享自己所思考的,对数据库操作的简单封装.我对于这篇文章,认为被浏览者所关注 ...
随机推荐
- [LeetCode]447 Number of Boomerangs
Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of po ...
- storm入门(二):关于storm中某一段时间内topN的计算入门
刚刚接触storm 对于滑动窗口的topN复杂模型有一些不理解,通过阅读其他的博客发现有两篇关于topN的非滑动窗口的介绍.然后转载过来. 下面是第一种: Storm的另一种常见模式是对流式数据进行所 ...
- 完美获取N卡A卡的显存大小(使用OpenGL)
// 基于扩展NVX_gpu_memory_info extension UINT QueryNVidiaCardMemory() { __try { int iVal = 0; glGet ...
- react-native-http请求后navigator导航跳转
琢磨react-native有一段时间了.对于我来说,它的确是前端开发工作者的福音,因为我可以利用它来写app的代码,而且基本可以一套代码,多个平台使用. 早就想写一篇随笔记录一下react nati ...
- bzoj 3110
题意:戳这里 思路:可以用cdq分治(很明显这种模型妹纸分治法很解决)..不过为了学习树套树特地写了一下.. 所谓的树套树也第一层(最外层)普通的维护的是一个node,而树套树维护的是一个数据结构(一 ...
- 如何在Windows中编译Linux Unix的代码(采用cygwin)?
来源:http://www.cnblogs.com/rocky_yi/archive/2009/12/08/cygwin.html 作者:rocky_y 很多经典算法往往是用C++在linux下实 ...
- PHP 表单验证
1. 验证文本框是否有内容且不能为空 <?php if (! (filter_has_var(INPUT_POST, 'flavor') && (strlen(filter_in ...
- SELECT TOP 100 PERCENT 不按后面的order by 排序
项目中,由于需要把3个状态的任务合并显示,并且按照任务由近及远的顺序排序,类似于下面的语句 order by taskid desc )m union all order by taskid desc ...
- mysql5.7 代价模型浅析
代价模型 mysql 5.7.10代价计算相对之前的版本有5.7 代价模型浅析较大的改进.例如 代价模型参数可以动态配置,可以适应不同的硬件 区分考虑数据在内存和在磁盘中的代价 代价精度提升为浮点型 ...
- C#中使用OpenSSL的公钥加密/私钥解密
在C#中进行公钥加密/私钥解密,需要用RSACryptoServiceProvider,但是它不支持由OpenSSL生成的公钥/私钥字符串. 比如这样的公钥/私钥对( 公私钥生成方法见 http:// ...