
这篇文章主要介绍了js文件Cookie存取值的使用,需要的朋友可以参考下
代码如下:
/
Cookie工具
使用方法:
//存值
var
value
=
"7天";
toolscookie("day",value,
{expires:7});
//将字符串:"7天"
以
"day"这个key保存到cookie中5天
//取值
var
v
=
toolscookie("day");
//用
"day"
这个key从cookie取出值
/
toolscookie
=
function(name,
value,
options)
{
if
(typeof
value
!=
'undefined')
{
//
name
and
value
given,
set
cookie
options
=
options
||
{};
if
(value
===
null)
{
value
=
'';
optionsexpires
=
-1;
}
var
expires
=
'';
if
(optionsexpires
&&
(typeof
optionsexpires
==
'number'
||
optionsexpirestoGMTString))
{
var
date;
if
(typeof
optionsexpires
==
'number')
{
date
=
new
Date();
datesetTime(dategetTime()
+
(optionsexpires
24
60
60
1000));
}
else
{
date
=
optionsexpires;
}
expires
=
';
expires='
+
datetoGMTString();
//
use
expires
//
attribute,
//
max-age
is
not
//
supported
by
IE
}
var
path
=
optionspath
';
path='
+
optionspath
:
'';
var
domain
=
optionsdomain
';
domain='
+
optionsdomain
:
'';
var
secure
=
optionssecure
';
secure'
:
'';
documentcookie
=
[
name,
'=',
encodeURIComponent(value),
expires,
path,
domain,
secure
]join('');
}
else
{
//
only
name
given,
get
cookie
var
cookieValue
=
null;
if
(documentcookie
&&
documentcookie
!=
'')
{
var
cookies
=
documentcookiesplit(';');
for
(
var
i
=
0;
i
<
cookieslength;
i++)
{
var
cookie
=
jQuerytrim(cookies[i]);
//
Does
this
cookie
string
begin
with
the
name
we
want
if
(cookiesubstring(0,
namelength
+
1)
==
(name
+
'='))
{
cookieValue
=
decodeURIComponent(cookie
substring(namelength
+
1));
break;
}
}
}
return
cookieValue;
}
};
avaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。
而cookie是运行在客户端的,所以可以用JS来设置cookie
假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭的时候,这些变量的值会重新载入,即没有达到保存的效果。解决这个问题的最好的方案是采用cookie来保存该变量的值,那么如何来设置和读取cookie呢?
首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。
JS设置cookie:
假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为:
复制代码代码如下:
documentcookie="name="+username;
JS读取cookie:
假设cookie中存储的内容为:name=jack;password=123
则在B页面中获取变量username的值的JS代码如下:
var username=documentcookiesplit(";")[0]split("=")[1];
//JS *** 作cookies方法!
//写cookies
function setCookie(name,value)
{
var Days = 30;
var exp = new Date();
expsetTime(expgetTime() + Days2460601000);
documentcookie = name + "="+ escape (value) + ";expires=" + exptoGMTString();
}
读取cookies
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;])(;|$)");
if(arr=documentcookiematch(reg))
return unescape(arr[2]);
else
return null;
}
删除cookies
function delCookie(name)
{
var exp = new Date();
expsetTime(expgetTime() - 1);
var cval=getCookie(name);
if(cval!=null)
documentcookie= name + "="+cval+";expires="+exptoGMTString();
}
//使用示例
setCookie("name","hayden");
alert(getCookie("name"));
//如果需要设定自定义过期时间
//那么把上面的setCookie 函数换成下面两个函数就ok;
//程序代码
function setCookie(name,value,time)
{
var strsec = getsec(time);
var exp = new Date();
expsetTime(expgetTime() + strsec1);
documentcookie = name + "="+ escape (value) + ";expires=" + exptoGMTString();
}
function getsec(str)
{
alert(str);
var str1=strsubstring(1,strlength)1;
var str2=strsubstring(0,1);
if (str2=="s")
{
return str11000;
}
else if (str2=="h")
{
return str160601000;
}
else if (str2=="d")
{
return str12460601000;
}
}
//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30
setCookie("name","hayden","s20");
用documentcookie 获取当前域名下的cookie。具体代码如下:
var mycookie = documentcookie
它读出来是一串字符串,包含当前域名下的所有cookie,解析字符串可以得到cookie值
documentcookie这个。
正常情况下,浏览器禁止跨域获取cookie
一般通过sso服务可以实现取得跨域cookie,思路如下:
域A页面访问位于域A的服务器,对权限进行验证
域A服务器于域B服务器通信,记录一个唯一的加密串用作身份验证域(并将cookie信息发送给域B服务器)
域A服务器返回302跳转,跳转到域B下,并将加密串作为url的一部分
页面由域A跳转到域B,域B服务器通过加密串获取到事先从域A服务器上得到的cookie信息,并在响应头中添加set-cookie字段设置cookie
cookie只能以字符串存储,而且有长度限制问题,一般长度就4000多点的字节。如果是比较大的对象序列化时长度是不够的,而且JS中复杂的对象是没法序列化的。如果只是想保存对象的几个属性,你完全不用保存整个对象,比如你要保存一个对象的"name"和"size"属性,你可以这样保存这样:"name:xxxx|size:xxxx",或者保存成JOSN格式:'{"name":"xxxx","size":"xxxx"}'。然后重新加载页面的时候,解析COOKIE字符串获取到里面的值,在对象初始化时将这些值赋值上去。
如果你只是简单的对象,类似这种:{name:"xxxx",size:xxxx},你可以直接转成JOSN格式保存
这里的SetCookie 是自己定义的一个函数
如:
function setCookie(name, value, expire) {
windowdocumentcookie = name + "=" + escape(value) + ((expire == null) "" : ("; expires=" + expiretoGMTString()));
}
所以里面的这些参数都是直接定义的JS只有windowdocumentcookie 定义cookie的方法至于里面的值 直接定义
var Cookies = {};
///
设置Cookies
/
Cookiesset = function(name, value){
var argv = arguments;
var argc = argumentslength;
var expires = (argc > 2) argv[2] : null;
var path = (argc > 3) argv[3] : '/';
var domain = (argc > 4) argv[4] : null;
var secure = (argc > 5) argv[5] : false;
documentcookie = name + "=" + escape (value) +
((expires == null) "" : ("; expires=" + expirestoGMTString())) +
((path == null) "" : ("; path=" + path)) +
((domain == null) "" : ("; domain=" + domain)) +
((secure == true) "; secure" : "");
};
///
读取Cookies
/
Cookiesget = function(name){
var arg = name + "=";
var alen = arglength;
var clen = documentcookielength;
var i = 0;
var j = 0;
while(i < clen){
j = i + alen;
if (documentcookiesubstring(i, j) == arg)
return CookiesgetCookieVal(j);
i = documentcookieindexOf(" ", i) + 1;
if(i == 0)
break;
}
return null;
};
///
清除Cookies
/
Cookiesclear = function(name) {
if(Cookiesget(name)){
var expdate = new Date();
expdatesetTime(expdategetTime() - (86400 1000 1));
Cookiesset(name, "", expdate);
}
};
CookiesgetCookieVal = function(offset){
var endstr = documentcookieindexOf(";", offset);
if(endstr == -1){
endstr = documentcookielength;
}
return unescape(documentcookiesubstring(offset, endstr));
};
//设置cookie值
//Cookiesset("username","张三");
//读取Cookies
//Cookiesget("username");
js *** 作COOKIE,直接给document加上cookie就可以了,但是一般如果单个的加会很麻烦所以一般会直接写好一个函数,可以直接 *** 作cookie,这样就很方便了
setCookie这个是写入cookie,第一个是名称,第二个是cookie值,第三个是过期时间
getCookie这个是查找cookie;
removeCookie这是你需要删除的cookie;
function setCookie(name, value, iDay){
var oDate=new Date();
oDatesetDate(oDategetDate()+iDay);
documentcookie=name+'='+encodeURIComponent(value)+';expires='+oDate;
}
function getCookie(name)
{
var arr=documentcookiesplit('; ');
var i=0;
for(i=0;i<arrlength;i++)
{
//arr2->['username', 'abc']
var arr2=arr[i]split('=');
if(arr2[0]==name)
{
var getC = decodeURIComponent(arr2[1]);
return getC;
}
}
return '';
}
function removeCookie(name)
{
setCookie(name, '1', -1);
}
以上就是关于js文件Cookie存取值的使用全部的内容,包括:js文件Cookie存取值的使用、js怎么设置cookie得到cookie删除cookie、js中如何获取cookies中的键值的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)