JQuery:cookie插件

  JQuery居然没有操作cookie相关的函数,搜了下官方有个cookie的插件

       简单使用方法:

  <head> 
    <title>JQuery-Cookie插件</title> 
    <script type="text/javascript" src="jquery-1.4.js"></script> 
    <script type="text/javascript" src="jquery.cookie.js"></script> 
  </head> 
  <body> 
    <a href="#">设置cookie1</a><br> 
    <a href="#">设置cookie2</a><br> 
    <a href="#">获取cookie</a><br> 
    <a href="#">删除cookie</a><br> 
  </body> 
</html> 
<script type="text/javascript"> 
$(function(){ 
   var COOKIE_NAME = 'test_cookie'; 
   //设置cookie,通过时间间隔 
   $('a').eq(0).click(function() { 
       $.cookie(COOKIE_NAME, 'test', { path: '/', expires: 1 }); 
       return false; 
   }); 
   // 设置cookie,到期时间 
   $('a').eq(1).click(function() { 
       var date = new Date(); 
       date.setTime(date.getTime() + (1 * 24 * 60 * 60 * 1000)); 
       $.cookie(COOKIE_NAME, 'test', { path: '/', expires: date }); 
       return false; 
   }); 
   // 获取 cookie 
   $('a').eq(2).click(function() { 
       alert($.cookie(COOKIE_NAME)); 
       return false; 
   }); 
   // 删除cookie 
   $('a').eq(3).click(function() { 
       $.cookie(COOKIE_NAME, null, { path: '/' }); 
       return false; 
   }); 
}); 
</script>

插件的源代码也很简单:

 jQuery.cookie = function(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(); 
        } 
        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 { 
        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]); 
                if (cookie.substring(0, name.length + 1) == (name + '=')) { 
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); 
                    break; 
                } 
            } 
        } 
        return cookieValue; 
    } 
};

  

原文地址:https://www.cnblogs.com/jameslif/p/4973132.html