jquerysession.js文件

来源:互联网 发布:淘宝上的黑科技 编辑:程序博客网 时间:2024/06/10 20:22

网上的大部分jquerysession.js文件要钱,给大家一个免费的



(function($){$.session={_id:null,_cookieCache:undefined,_init:function(){if(!window.name){window.name=Math.random();}this._id=window.name;this._initCache();var matches=(new RegExp(this._generatePrefix()+"=([^;]+);")).exec(document.cookie);if(matches&&document.location.protocol!==matches[1]){this._clearSession();for(var key in this._cookieCache){try{window.sessionStorage.setItem(key,this._cookieCache[key]);}catch(e){};}}document.cookie=this._generatePrefix()+"="+ document.location.protocol+';path=/;expires='+(new Date((new Date).getTime()+ 120000)).toUTCString();},_generatePrefix:function(){return'__session:'+ this._id+':';},_initCache:function(){var cookies=document.cookie.split(';');this._cookieCache={};for(var i in cookies){var kv=cookies[i].split('=');if((new RegExp(this._generatePrefix()+'.+')).test(kv[0])&&kv[1]){this._cookieCache[kv[0].split(':',3)[2]]=kv[1];}}},_setFallback:function(key,value,onceOnly){var cookie=this._generatePrefix()+ key+"="+ value+"; path=/";if(onceOnly){cookie+="; expires="+(new Date(Date.now()+ 120000)).toUTCString();}document.cookie=cookie;this._cookieCache[key]=value;return this;},_getFallback:function(key){if(!this._cookieCache){this._initCache();}return this._cookieCache[key];},_clearFallback:function(){for(var i in this._cookieCache){document.cookie=this._generatePrefix()+ i+'=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';}this._cookieCache={};},_deleteFallback:function(key){document.cookie=this._generatePrefix()+ key+'=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';delete this._cookieCache[key];},get:function(key){return window.sessionStorage.getItem(key)||this._getFallback(key);},set:function(key,value,onceOnly){try{window.sessionStorage.setItem(key,value);}catch(e){}this._setFallback(key,value,onceOnly||false);return this;},'delete':function(key){return this.remove(key);},remove:function(key){try{window.sessionStorage.removeItem(key);}catch(e){};this._deleteFallback(key);return this;},_clearSession:function(){try{window.sessionStorage.clear();}catch(e){for(var i in window.sessionStorage){window.sessionStorage.removeItem(i);}}},clear:function(){this._clearSession();this._clearFallback();return this;}};$.session._init();})(jQuery);