原生JS(cookie操作的封装)
封装cookie的操作:查询cookie个数、查询所有cookie的键、获取cookie、设置cookie、删除cookie、清除全部cookie /** * cookieStorage */ function cookieStorage( maxage, path ){ var cookie = ( function(){ var cookie = {}; var all = document.cookie; if( all ==="" ){ return cookie; } var list = all.split( "; " ); for( var i=0; i<list.length; i++ ){ var singleCookie = list[i]; var p = singleCookie.indexOf( "=" ); var name = singleCookie.substring( 0, p ); var value = singleCookie.substring( p+1 ); value = decodeURIComponent( value ); cookie[name] = value; } return cookie; }() ); var keys = []; for( var key in cookie ){ keys.push( key ); } this.length = keys.length; this.key = function( n ){ if( n < 0 || n > keys.length-1 ){ return null; } return keys[n]; } this.getItem = function(){ return cookie[name] || null; } this.setItem = function( key, value ){ if( !( key in cookie ) ){ keys.push( key ); this.length ++; } cookie[key] = value; var cookie = key + "=" + encodeURIComponent( value ); if( maxage ){ cookie += "; max-age=" + maxage; } if( path ){ cookie += "; path=" + path; } document.cookie = cookie; } this.removeItem = function( key ){ if( !( key in cookie ) ){ return; } delete cookie[key]; for( var i=0; i<keys.length; i++ ){ if( keys[i] === key ){ keys.splice( i, 1 ); break; } } this.length--; document.cookie = key + "=; max-age=0"; } this.clear = function(){ for( var i=0; i<keys.length; i++ ){ document.cookie = keys[i] + "=; max-age=0"; } cookie = {}; keys = []; this.length = 0; } }