封装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;
}
}