zoukankan      html  css  js  c++  java
  • 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;
    	}
    }
    
  • 相关阅读:
    HTML5标签变化
    接口测试基础入门学习
    1.1Axure简介
    win 7命令行大全
    程序集强签名
    源代码的文件头格式化
    redmine2.3环境搭建
    静态成员和方法的使用场合及利弊分析
    .Net Memory Profiler入门
    TransactionScope类
  • 原文地址:https://www.cnblogs.com/fengwenzhee/p/8776252.html
Copyright © 2011-2022 走看看