JS 浏览器cookie的设置,读取,删除
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。
而cookie是运行在客户端的,所以可以用JS来设置cookie.
假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭的时候,这些变量的值会重新载入,即没有达到保存的效果。解决这个问题的最好的方案是采用cookie来保存该变量的值,那么如何来设置和读取cookie呢?
首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>关于Cookie</title>
<script>
/*
cookie:存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来像访问者电脑上存储数据;
1、不同的浏览器存放的cookie位置不一样,也是不能通用的;
2、cookie的存储是以域名的方式进行区分的;
3、cookie的数据是可以设置名字的,j.name=Jack
4、一个域名下存放的cookie的个数是有限制的,不同浏览器存放的个数不一样;
5、每个cookie存放的内容大小也是限制的,不同的浏览器存放大小限制不一样;
我们通过document.cookie来获取当前网站下的cookie的时候,得到的是字符串的形式的值,它包含了
当前网站下的所有cookie,它会把所有cookie通过一个分号+空格的形式串联起来。
我们想长时间存放一个cookie,需要在设置这个cookie的时候必须设置一个过期时间;
document.cookie='名称=值;expires='+(字符串格式的)时间;
cookie默认是临时存储,当浏览器关闭进程的时候,自动销毁;
*/
//document.cookie='名字=值';
//document.cookie='name=Jack';
//document.cookie='pwd=123456';
//设置一个过期时间
//var oDate=new Date();
//oDate.setDate(oDate.getDate()+7);//设置为当前时间起算7天后过期
//document.cookie='name=Jack;expires='+oDate.toGMTString();
//alert(typeof oDate);//odate类型是object类型,需要转换为字符串;
//alert(oDate.getDate()); //获取的是当前月份的日号,如5月25,输出的是25
//读取cookie:document.cookie;
//alert(document.cookie);//name=Jack; pwd=123456
//内容最好编码存放,编码--encodeURI(),解码--decodeURI()
//document.cookie='name='+encodeURI('Jack\n您好')+';expires='+oDate.toGMTString();//name=Jack%0A%E6%82%A8%E5%A5%BD; pwd=123456
//alert(decodeURI(document.cookie));//name=Jack 您好; pwd=123456
setCookie("name","Tom",5);
alert( getCookie("name"));
removeCookie("name");
/*
封装
*/
function setCookie(key,value,t)
{
var oDate=new Date();
oDate.setDate(oDate.getDate()+t);
document.cookie=key+"="+value+"; expires="+oDate.toDateString();
}
function getCookie(key){
var arr1=document.cookie.split("; ");//由于cookie是通过一个分号+空格的形式串联起来的,所以这里需要先按分号空格截断,变成[name=Jack,pwd=123456,age=22]数组类型;
for(var i=0;i<arr1.length;i++){
var arr2=arr1[i].split("=");//通过=截断,把name=Jack截断成[name,Jack]数组;
if(arr2[0]==key){
return decodeURI(arr2[1]);
}
}
}
//封装一个移除cookie的函数
function removeCookie(key){
setCookie(key,"",-1);//把cookie设置为过期
}
</script>
</head>
<body>
</body>
</html>
例子:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>记住cookie效果</title>
<script>
/*
封装*/
window.onload=function(){
var oName=document.getElementById("username");
var oBtn=document.getElementById("btn");
var oDel=document.getElementById("del");
//判断当前cookie是否有值,---即判断getCookie()函数的返回值是否有
if(getCookie("Username")){
oName.value=getCookie("Username");
}else{
oName.value="请输入账户名";
}
oBtn.onclick=function(){
alert("登录成功");
setCookie("Username",oName.value,5);
}
oDel.onclick=function(){
removeCookie("Username");
oName.value="";
}
}
function setCookie(key,value,t)
{ if(t>0){
var oDate=new Date();
oDate.setDate(oDate.getDate()+t);
document.cookie=key+"="+value+"; expires="+oDate.toDateString();
}
}
function getCookie(key){
var arr1=document.cookie.split("; ");//由于cookie是通过一个分号+空格的形式串联起来的,所以这里需要先按分号空格截断,变成[name=Jack,pwd=123456,age=22]数组类型;
for(var i=0;i<arr1.length;i++){
var arr2=arr1[i].split("=");//通过=截断,把name=Jack截断成[name,Jack]数组;
if(arr2[0]==key){
return decodeURI(arr2[1]);
}
}
}
//封装一个移除cookie的函数
function removeCookie(key){
setCookie(key,"",-1);//把cookie设置为过期
}
// removeCookie("name");
</script>
</head>
<body>
<input type="text" id="username">
<input type="button" value="登录" id="btn">
<input type="button" value="清除cookie" id="del">
</body>
</html>
JS 浏览器cookie的设置,读取,删除的更多相关文章
- JS读写Cookie(设置、读取、删除)
JS读写Cookie(设置.读取.删除) Cookie是客户端存放数据的一种方式,可用来做状态保持. 1.设置Cookie: a.无过期时间:(若不设置过期时间,默认为会话级Cookie,浏览器关闭就 ...
- js操作cookie(创建、读取、删除)方法总结
js操作cookie,可以通过开源的插件实现,方便快捷,兼容性好,同样也可以自己写: 此文主要介绍两个常用的插件: Js.cookie.js 和 jQuery.cookie.js 0.Js.cooki ...
- js中cookie的添加,删除,查询总结
function addCookie(objName,objValue,objHours){//添加cookie var str = objName + "=" + escape( ...
- js 处理 cookie的存储与删除
<script> //JS操作cookies方法! //写cookies function setCookie(c_name, value, expiredays){ var exdate ...
- uni-app同步缓存值 设置 读取 删除
A页面 <view class="go-to-tab" @tap="gotologin"> 去login页面 </view> msg : ...
- JS对浏览器Cookie的操作,查询、设置以及删除
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一 ...
- JS封装cookie操作函数实例(设置、读取、删除)
本文实例讲述了JS封装cookie操作函数.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
- JS读写浏览器cookie及读取页面参数
JS读写浏览器cookie及读取页面参数 var zbrowser = { //设置浏览器cookie,exdays是cookie有效时间 setCookie: function (c_name, v ...
- js cookie创建读取删除函数封装
js cookie创建读取删除函数封装 一.总结 都是为了方便操作,这样弄了很方便 1.创建cookie的函数封装的作用:方便设置过期时间expire,方便设置键和值 2.查询cookie的数据封装的 ...
随机推荐
- 嵌入javascript脚本的位置
JavaScript脚本可以放在HTML文档任何需要的位置.一般来说,可以在<head>与</head>.<body>与</body>标记对之间按需要放 ...
- 插入排序的优化非希尔【不靠谱地讲可以优化到O(nlogn)】 USACO 丑数
首先我们先介绍一下普通的插排,就是我们现在一般写的那种,效率是O(n^2)的. 普通的插排基于的思想就是找位置,然后插入进去,其他在它后面的元素全部后移,下面是普通插排的代码: #include< ...
- UPS电源效果及有关名词解析
UPSuninterruptpowersystem缩写,4.工频机和高频机<工频机UPS选用工频变压器作为整流器和逆变器的部件的UPS电源:高频机是以高频开关元件代替整流器和逆变器中粗笨的工频变 ...
- 初学VUE2.0
初学VUE2.0 (个人笔记,写完后发现好乱....下期使用markdown书写.) 概述 webstorm添加对VUE的支持 http://www.jianshu.com/p/142dae4f8b5 ...
- 【Spark2.0源码学习】-1.概述
Spark作为当前主流的分布式计算框架,其高效性.通用性.易用性使其得到广泛的关注,本系列博客不会介绍其原理.安装与使用相关知识,将会从源码角度进行深度分析,理解其背后的设计精髓,以便后续 ...
- Hibernate启动非常慢问题分析
项目中使用hibernate3,在启动项目过程中,发现加载显示数据很慢,要多几分钟才显示出数据,没有报其他异常.今天特别慢,过了好久都不加载显示数据. 排查思路有以下几个方面: 1.数据库是否开启.检 ...
- CF #CROC 2016 - Elimination Round D. Robot Rapping Results Report 二分+拓扑排序
题目链接:http://codeforces.com/contest/655/problem/D 大意是给若干对偏序,问最少需要前多少对关系,可以确定所有的大小关系. 解法是二分答案,利用拓扑排序看是 ...
- HDU3518 后缀数组求不可重叠重复出现的不同子串个数
枚举子串长度,根据height分组,如果本组sa最小值与sa最大值之差超过枚举的长度,则本组对于答案贡献为1. #include <iostream> #include <vecto ...
- STM32学习笔记(五)——通用定时器计数延时
STM32定时器概述 STM32F40x系列总共最多有14个定时器,定时器分为三类:基本定时器.通用定时器和高级定时器.它们的都是通过计数来达到定时的目的,和51的定时器差不多,基本原理都是一样的,就 ...
- java面试题—精选30道Java笔试题解答(一)
下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~ 1. 下面哪些是Thread类的方法() A start() B run() C exit() D getP ...