js 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"); 

  cookies操作方法:

// cookie操作 
function cookie(name, value, options) { 
	if (typeof value != 'undefined') { // name and value given, set cookie 
		options = options || {}; 
		if (value === null) { 
			value = ''; 
			options.expires = -1; 
		} 
		var expires = ''; 
		if (options.expires 
				&& (typeof options.expires == 'number' || options.expires.toUTCString)) { 
			var date; 
			if (typeof options.expires == 'number') { 
				date = new Date(); 
				date.setTime(date.getTime() 
						+ (options.expires * 24 * 60 * 60 * 1000)); 
			} else { 
				date = options.expires; 
			} 
			expires = '; expires=' + date.toUTCString(); // use expires 
															// attribute, 
															// max-age is not 
															// supported by IE 
		} 
		var path = options.path ? '; path=' + options.path : ''; 
		var domain = options.domain ? '; domain=' + options.domain : ''; 
		var secure = options.secure ? '; secure' : ''; 
		document.cookie = [ name, '=', encodeURIComponent(value), expires, 
				path, domain, secure ].join(''); 
	} else { // only name given, get cookie 
		var cookieValue = null; 
		if (document.cookie && document.cookie != '') { 
			var cookies = document.cookie.split(';'); 
			for (var i = 0; i < cookies.length; i++) { 
				var cookie = jQuery.trim(cookies[i]); 
				// Does this cookie string begin with the name we want? 
				if (cookie.substring(0, name.length + 1) == (name + '=')) { 
					cookieValue = decodeURIComponent(cookie 
							.substring(name.length + 1)); 
					break; 
				} 
			} 
		} 
		return cookieValue; 
	} 
} 

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/11460.html

(0)
上一篇 2021年7月19日 11:11
下一篇 2021年7月19日 11:11

相关推荐

发表回复

登录后才能评论