iLocalStorage.js
2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
* 名称:本地存储函数
* 功能:兼容各大浏览器存储
* 作者:轩枫
* 日期:2015/06/11
* 版本:V2.0
* @example
iLocalStorage.setItem('key', 'value');
console.log(iLocalStorage.getItem('key'));
iLocalStorage.removeItem('key');
*/
(function (window, document) {
// 1. IE7下的UserData对象
var UserData = {
userData: null,
name: location.href,
init: function () {
if (!UserData.userData) {
try {
UserData.userData = document.createElement("INPUT");
UserData.userData.type = "hidden";UserData.userData.style.display = "none";
UserData.userData.addBehavior("#default#userData"); document.body.appendChild(UserData.userData);
var expires = new Date();expires.setDate(expires.getDate() + 365);
UserData.userData.expires = expires.toUTCString();
} catch (e) { return false; }
}
return true;
},
setItem: function (key, value) {
if (UserData.init()) {
UserData.userData.load(UserData.name); UserData.userData.setAttribute(key, value); UserData.userData.save(UserData.name);
}
},
getItem: function (key) {
if (UserData.init()) {
UserData.userData.load(UserData.name); return UserData.userData.getAttribute(key);
}
},
removeItem: function (key) {
if (UserData.init()) {
UserData.userData.load(UserData.name); UserData.userData.removeAttribute(key); UserData.userData.save(UserData.name);
}
}
};
// 2. 兼容只支持globalStorage的浏览器
// 使用: var storage = getLocalStorage();
function getLocalStorage() {
if (typeof localStorage == "object") {
return localStorage;
} else if (typeof globalStorage == "object") {
return globalStorage[location.href];
} else if (typeof userData == "object") {
return globalStorage[location.href];
} else {
throw new Error("不支持本地存储");
}
}
var storage = getLocalStorage(); function iLocalStorage() { }
// 高级浏览器的LocalStorage对象
iLocalStorage.prototype = {
setItem: function (key, value) {
if (!window.localStorage) { UserData.setItem(key, value); } else { storage.setItem(key, value); }
},
getItem: function (key) {
if (!window.localStorage) { return UserData.getItem(key); } else { return storage.getItem(key); }
},
removeItem: function (key) {
if (!window.localStorage) { UserData.removeItem(key); } else {storage.removeItem(key); }
}
}
if (typeof module == 'object') { module.exports = new iLocalStorage();} else { window.iLocalStorage = new iLocalStorage(); }
})(window, document);