我一直试图让它在IE8中运行,虽然它没有抱怨这些,但它完全忽略了它们。
if( typeof(Storage) != "undefined"){
Storage.prototype.setObject = function(key, value) {
this.setItem(key, escape(JSON.stringify(value)));
}
Storage.prototype.getObject = function(key) {
return JSON.parse(unescape(this.getItem(key)));
}
}
当我尝试:
localStorage.setObject("key", <Some object>);
我收到一个“对象不支持此方法”错误,甚至没有调用该函数。当然,这段代码在Chrome和Firefox中运行良好,甚至可能在我1980年代的卡西欧手表上运行。
任何帮助都会很棒。
偶然而且完全不相关的IE8当我得到我的对象时我必须JSON.parse它两次得到对象...
由于 保罗
答案 0 :(得分:6)
最好使用单独的函数,而不是弄乱内置对象的原型。
function storeObject(key,obj) {
localStorage[key] = JSON.stringify(obj);
}
function retrieveObject(key) {
return JSON.parse(localStorage[key]);
}
这比原型操作更可靠,特别是在旧浏览器中。