1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /**
- * @fileOverview
- *
- * UI 状态的 LocalStorage 的存取文件,未来可能在离线编辑的时候升级
- *
- * @author: zhangbobell
- * @email : zhangbobell@163.com
- *
- * @copyright: Baidu FEX, 2015
- */
- angular.module('kityminderEditor')
- .service('memory', function() {
- function isQuotaExceeded(e) {
- var quotaExceeded = false;
- if (e) {
- if (e.code) {
- switch (e.code) {
- case 22:
- quotaExceeded = true;
- break;
- case 1014:
- // Firefox
- if (e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {
- quotaExceeded = true;
- }
- break;
- }
- } else if (e.number === -2147024882) {
- // Internet Explorer 8
- quotaExceeded = true;
- }
- }
- return quotaExceeded;
- }
- return {
- get: function(key) {
- var value = window.localStorage.getItem(key);
- return null || JSON.parse(value);
- },
- set: function(key, value) {
- try {
- window.localStorage.setItem(key, JSON.stringify(value));
- return true;
- } catch(e) {
- if (isQuotaExceeded(e)) {
- return false;
- }
- }
- },
- remove: function(key) {
- var value = window.localStorage.getItem(key);
- window.localStorage.removeItem(key);
- return value;
- },
- clear: function() {
- window.localStorage.clear();
- }
- }
- });
|