//存储媒介封装 var LocalStorage = (UE.LocalStorage = (function() { var storage = window.localStorage || getUserData() || null, LOCAL_FILE = "localStorage"; return { saveLocalData: function(key, data) { if (storage && data) { storage.setItem(key, data); return true; } return false; }, getLocalData: function(key) { if (storage) { return storage.getItem(key); } return null; }, removeItem: function(key) { storage && storage.removeItem(key); } }; function getUserData() { var container = document.createElement("div"); container.style.display = "none"; if (!container.addBehavior) { return null; } container.addBehavior("#default#userdata"); return { getItem: function(key) { var result = null; try { document.body.appendChild(container); container.load(LOCAL_FILE); result = container.getAttribute(key); document.body.removeChild(container); } catch (e) {} return result; }, setItem: function(key, value) { document.body.appendChild(container); container.setAttribute(key, value); container.save(LOCAL_FILE); document.body.removeChild(container); }, //// 暂时没有用到 //clear: function () { // // var expiresTime = new Date(); // expiresTime.setFullYear(expiresTime.getFullYear() - 1); // document.body.appendChild(container); // container.expires = expiresTime.toUTCString(); // container.save(LOCAL_FILE); // document.body.removeChild(container); // //}, removeItem: function(key) { document.body.appendChild(container); container.removeAttribute(key); container.save(LOCAL_FILE); document.body.removeChild(container); } }; } })()); (function() { var ROOTKEY = "ueditor_preference"; UE.Editor.prototype.setPreferences = function(key, value) { var obj = {}; if (utils.isString(key)) { obj[key] = value; } else { obj = key; } var data = LocalStorage.getLocalData(ROOTKEY); if (data && (data = utils.str2json(data))) { utils.extend(data, obj); } else { data = obj; } data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data)); }; UE.Editor.prototype.getPreferences = function(key) { var data = LocalStorage.getLocalData(ROOTKEY); if (data && (data = utils.str2json(data))) { return key ? data[key] : data; } return null; }; UE.Editor.prototype.removePreferences = function(key) { var data = LocalStorage.getLocalData(ROOTKEY); if (data && (data = utils.str2json(data))) { data[key] = undefined; delete data[key]; } data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data)); }; })();