javascript cookie实现

功能需求:

用户每次登录的时候弹出一条提示语句.刷新或跳转不再提示。

方式1:利用cookie,将是否需要提示以键值对的方式保存到cookie中,用户首次登录的时候从cookie中判断是否需要弹出提示框,需要则弹出,同时保存cookie,设置不需要弹出,当用户点击退出的时候清楚cookie.

Cookie存储于硬盘,可以在javascript充当全局变量。

<script type="text/javascript">
	(function(window){
		/*cookie以键值对的方式存储,多个的时候以;分开,document.cookie = "a=1;b=2";
		 *cookie过期document.cookie = "a=1;expires=GMT时间格式(date.toGMTString())";	
		 *cookie的键值中不能使用;,=以及空格,如果是值中可能含有,可以使用escape()进行编码,如空格就可以转换为"20%",取的
		 *时候利用unescapse()进行解码
		 *cookie存储于硬盘,所以可以用作全局变量
		**/ 
		var document = window.document,
			cache = document.cookie;
			Cookie = function(){
				return Cookie.fn.init();
			};
		window.Cookie = Cookie;
		
		Cookie.fn = Cookie.prototype = {
			//初始化
			init:function(){
			},
			//获取指定键的cookie
			getCookie:function(name){
				var value = "",
					cookieArray ;
				if( cache != null && cache.length > 0) {
					cookieArray = this.toArray();
					for(var i=0,maxLen = cookieArray.length; i<maxLen ; i++){
						var map = cookieArray[i].split("=");
						if(typeof map[0] == "string" && map[0].trim() == name.trim()) {
							value = unescape(map[1]).trim();
							break; 
						}
					}
				}
				return value;
			},
			//将cookie转换为数组
			toArray:function(){
				var cookieArray = new Array();
				if(cache != null && cache.length > 0 ){
					cookieArray = cache.split(";");
				}
				return cookieArray;
			},
			//设置相应的cookie值,expireTime:过期时间(ms)(默认为浏览器关闭cookie消失)
			addCookie:function(name,value,expireTime){
				var cookieStr = name + "=" + escape(value);
				// cookie为空
				if(expireTime != null && expireTime > 0) {
					var overdueTime = new Date();
					overdueTime.setTime(overdueTime.getTime()+expireTime);
					cookieStr = cookieStr + ";expires="+overdueTime.toGMTString();
				}
				document.cookie = cookieStr;
			},
			//删除指定cookie
			deleteCookie:function(name){
				//设置过期时间,date.getTime():获取的是毫秒数
				var overdueTime = new Date(),
					value = this.getCookie(name);
				overdueTime.setTime(overdueTime.getTime()-1);
				if(value != null) {
					document.cookie = name + "=" + value + ";expires="+overdueTime.toGMTString();
				}
			}
		};
		String.prototype.trim = function(){
			return this.replace(/^\s+/,'').replace(/\s+$/,'');
		}
	})(window);
	
	var cache = new Cookie();
	cache.addCookie("what","2",null);
	alert(cache.getCookie("what"));
	// cache.deleteCookie("what");
</script>
方式2:将是否需要弹出提示框保存到session中,用户登录存入session.弹出提示框后移除session即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值