繁体   English   中英

Storage.prototype在IE8中不起作用

[英]Storage.prototype not working in IE8

我一直试图使它在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年的Casio手表上都可以正常工作。

任何帮助都会很棒。

当我拿回对象时,偶然且完全无关的IE8我必须进行JSON.parse两次以获取对象...

谢谢保罗

您最好使用单独的函数,而不要弄乱内置对象的原型。

function storeObject(key,obj) {
    localStorage[key] = JSON.stringify(obj);
}
function retrieveObject(key) {
    return JSON.parse(localStorage[key]);
}

这比原型操作更可靠,尤其是在较旧的浏览器中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM