实现一个简单的jquery cookie 插件
在前端开发过程中,页面cookie的使用频率应该是很高的,为了对常用的这些工具组件做个整理,昨天写了一个简单的cookie插件
js 代码如下:
1 ;(function($,document,undefined){
2 var defaults= {
3 path : "/",
4 secure:""
5 };
6 $.cookie = function(key,value,options){
7 //write cookie
8 if(value !== undefined){
9 options = $.extend({},defaults, options);
10 if(value === null){
11 options.expires = -1;
12 }
13 if(typeof options.expires === 'number'){
14 var days = options.expires,
15 t = options.expires = new Date();
16 t.setDate(t.getDate() + days);
17 }
18 return (document.cookie = [encodeURIComponent(key),'=',encodeURIComponent(value),
19 options.expires ? '; expires='+options.expires.toUTCString():'',
20 options.path ? '; path='+options.path : '',
21 options.domain ? '; domain='+options.domain : '',
22 options.secure ? '; secure' : ''
23 ].join(''));
24 }
25 // read cookie
26 var cookies = document.cookie.split('; ');
27 for(var i = 0,len = cookies.length; i < len; i++){
28 var parts = cookies[i].split('='),
29 name = decodeURIComponent(parts.shift()),
30 cookie = decodeURIComponent(parts);
31 if(name === key){
32 return cookie;
33 }
34 }
35 };
36 $.removeCookie = function(key,options){
37 if($.cookie(key) !== null){
38 $.cookie(key,null,options);
39 return true;
40 }
41 return false;
42 }
43 })(jQuery,document);
测试代码如下:
html 代码:
1 <!DOCTYPE HTML>
2 <html lang="en-US">
3 <head>
4 <meta charset="UTF-8">
5 <title>cookie test</title>
6 <script type="text/javascript" src="../jquery.js"></script>
7 <script type="text/javascript" src="cookie.jquery.js"></script>
8 </head>
9 <body>
10 <div>
11 <p><label>cookie name:</label><input type="text" id="cookie_name" /></p>
12 <p><label>cookie value:</label><input type="text" id="cookie_value" /></p>
13 <div><label style="vertical-align:top;">all cookie:</label><textarea id="res" cols="30" rows="10"></textarea></div>
14 <p>
15 <button id="add">添加cookie</button>
16 <button id="del">删除cookie</button>
17 <button id="view">查询cookie</button>
18 </p>
19 </div>
20 </body>
21 </html>
测试用的javascript代码如下:
1 $(function(){
2 $('#res').val(document.cookie);
3 $('#add').click(function(){
4 var c_name = $('#cookie_name').val(),
5 c_value = $('#cookie_value').val();
6 $.cookie(c_name,c_value,{});
7 });
8 $('#del').click(function(){
9 var c_name = $('#cookie_name').val();
10 $.removeCookie(c_name,{});
11 });
12 $('#view').click(function(){
13 var c_name = $('#cookie_name').val();
14 $('#cookie_value').val($.cookie(c_name));
15 });
16 });
通过简单的测试,插件能正确的设置和读取cookie值。

浙公网安备 33010602011771号