IE 之 userData 模拟 localStorage
引
chrome, safari, firefox, ie 9都支持 localStorage. 但可恶的是,中国 ie 6 占有最大的比例。 使用 cookie 不但容量有限,而且给我们增加了不少的带宽,也进行影响网站的性能。
所以我写了 localStorage.js 来模拟 localStorage, 这样其它js 就跨浏览器地使用localStorage了.
代码
if(!window.localStorage && /MSIE/.test(navigator.userAgent)){
if(!window.UserData) {
window.UserData = function(file_name) {
if(!file_name) file_name="user_data_default";
var dom = document.createElement('input');
dom.type = "hidden";
dom.addBehavior ("#default#userData");
document.body.appendChild(dom);
dom.save(file_name);
this.file_name = file_name;
this.dom = dom;
return this;
};window.UserData.prototype = {
setItem:function(k, v)
{
this.dom.setAttribute(k,v);
this.dom.save(this.file_name);
},
getItem:function(k){
this.dom.load(this.file_name);
return this.dom.getAttribute(k);
},
removeItem:function(k){
this.dom.removeAttribute(k);
this.dom.save(this.file_name);
},clear:function() {
this.dom.load(this.file_name);
var now = new Date();
now = new Date(now.getTime()-1);
this.dom.expires = now.toUTCString();
this.dom.save(this->file_name);
}
};
}
window.localStorage= new window.UserData("local_storage");
}
缺陷
userdata有个缺陷是不支持跨目录存储。
这个实现要求 使用 localStorage的时候,只使用 setItem, getItem, removeItem接口, 而不能直接使用 localStorage.your_key 的方式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步