本文目录一览:
- 1、js怎么设置cookie得到cookie删除cookie
- 2、js 怎么重新设置cookie
- 3、如何用js修改页面cookies
- 4、如何用js来操作cookie呢?
- 5、js中如何设置cookie的保存时间呢?
js怎么设置cookie得到cookie删除cookie
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代码为:
复制代码代码如下:
document.cookie="name="+username;
JS读取cookie:
假设cookie中存储的内容为:name=jack;password=123
则在B页面中获取变量username的值的JS代码如下:
var username=document.cookie.split(";")[0].split("=")[1];
//JS操作cookies方法!
//写cookies
function setCookie(name,value)
{
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
读取cookies
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
删除cookies
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
//使用示例
setCookie("name","hayden");
alert(getCookie("name"));
//如果需要设定自定义过期时间
//那么把上面的setCookie 函数换成下面两个函数就ok;
//程序代码
function setCookie(name,value,time)
{
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getsec(str)
{
alert(str);
var str1=str.substring(1,str.length)*1;
var str2=str.substring(0,1);
if (str2=="s")
{
return str1*1000;
}
else if (str2=="h")
{
return str1*60*60*1000;
}
else if (str2=="d")
{
return str1*24*60*60*1000;
}
}
//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30
setCookie("name","hayden","s20");
js 怎么重新设置cookie
这个看你有没有使用cookie的插件
如果使用,可以看看具体的插件使用指导
例如:不同的 系统可能会用不同的创建,像傲隆盛 jquery.cookie.js或者看如下的小案例:
1.生成一个cookie,名称为user,内容为liayun:
$.cookie("user","liayun");
2.cookie的参数设置:
$.cookie("user","liayun", {
expires:7, //过期时间,7天后过期
path:"/", //根目录,path的作用就是设置路径,根目录到底所谓何???
});
$.cookie("aaa","bbb", {
//domain:"" //设置域名,可以发现名为aaa的cookie并没有建立,为何???
secure:true //发送条件:仅限加密连接 默认为false,需要使用安全协议https
});
综上所述,除了expires这个参数有用,其他根本就没什么鸟用!!!
3.读取cookie数据:
alert($.cookie("user")); //liayun
alert($.cookie("aaa")); //undefined,名为aaa的cookie的参数secure为true,因为需要使用安全协议https,而我们一般使用http协议,所以返回undefined
$.cookie("ccc",""); //自动编码为:%E6%9D%8E%E9%98%BF%E6%98%80
alert($.cookie("ccc")); //自动解码为:
4.关闭编码/解码,默认为false:
$.cookie.raw = true;
$.cookie("ddd",""); //没有自动编码,
alert($.cookie("ddd")); //
5.读取所有cookie数据:
alert($.cookie());
如何用js修改页面cookies
直接赋值。不设置时间的话,默认浏览器关闭cookie失效
document.cookie = "name="+value;
写个函数动态调用
//设置或添加cookie
function setCookie(name,value,time){ var str = name + "=" + escape(value); if(time 0){ var date = new Date(); var ms = time*3600*1000; date.setTime(date.getTime() + ms); str += "; expires=" + date.toGMTString(); } document.cookie = str;}//获取cookie function getCookie(name){ //cookie中的数据都是以分号加空格区分开 var arr = document.cookie.split("; "); for(var i=0; iarr.length; i++){ if(arr[i].split("=")[0] == name){ return arr[i].split("=")[1]; } } //未找到对应的cookie则返回空字符串 return ''; }//删除cookie function removeCookie(name){ document.cookie = name+"=;expires="+(new Date(0)).toGMTString();}
如何用js来操作cookie呢?
js操作COOKIE,直接给document加上cookie就可以了,但是一般如果单个的加会很麻烦所以一般会直接写好一个函数,可以直接操作cookie,这样就很方便了
setCookie这个是写入cookie,第一个是名称,第二个是cookie值,第三个是过期时间
getCookie这个是查找cookie;
removeCookie这是你需要删除的cookie;
function setCookie(name, value, iDay)
{
var oDate=new Date();
oDate.setDate(oDate.getDate()+iDay);
document.cookie=name+'='+encodeURIComponent(value)+';expires='+oDate;
}
function getCookie(name)
{
var arr=document.cookie.split('; ');
var i=0;
for(i=0;iarr.length;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的保存时间呢?
设置cookie的保存时间,通过cookie的expires性质指定一个终止时间就可以了。也就是说,你在设置cookie的时候,你的cookie字串要像下面这样组合:
var d= new Date();
d.setHours(d.getHours() + (24 * 30)); //保存一个月
document.cookie = "visited=yes; expires=" + d.toGMTString();
这样你的cookie就能保存一个月了,下面是我测试用的代码,你自己看看是否有其他帮助,有的话尽管拿去:
html
head
script language="javascript"
function Window_Load(){
setCookie("name","111"); //临时cookie
setCookie("age","222",24 * 7); //保存7天
setCookie("address","333",24,"/"); //保存1天,path为根目录
//设定cookie为安全的(secure=true),只能在HTTPS或与其他安全协议
//连接在一起的时候才被传输
setCookie("phone","444",24,"/",".",false);
alert(document.cookie);
alert(getCookie("age"));
//删除名称为"age"的cookie
removeCookie("age")
alert(document.cookie);
//删除名称为"address"的cookie,因为设置时设定的path,所以删除
//时也需要传入对应path
removeCookie("address","/")
alert(document.cookie);
}
function setCookie(name,value,hours,path,domain,secure){
var cdata = name + "=" + value;
if(hours){
var d = new Date();
d.setHours(d.getHours() + hours);
cdata += "; expires=" + d.toGMTString();
}
cdata +=path ? ("; path=" + path) : "" ;
cdata +=domain ? ("; domain=" + domain) : "" ;
cdata +=secure ? ("; secure=" + secure) : "" ;
document.cookie = cdata;
}
function getCookie(name){
var reg = eval("/(?:^|;\\s*)" + name + "=([^=]+)(?:;|$)/");
return reg.test(document.cookie) ? RegExp.$1 : "";
}
function removeCookie(name,path,domain){
this.setCookie(name,"",-1,path,domain);
}
/script
/head
body onload="Window_Load();"
/body
/html