Blame | Letzte Änderung | Log anzeigen | RSS feed
(function($){$.session = {_id: null,_cookieCache: undefined,_init: function(){if (!window.name) {window.name = Math.random();}this._id = window.name;this._initCache();// See if we've changed protcolsvar 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);