3

localStorage に 2 つのメソッドを追加したいと思います。私の目標は、次のようなものになることです。

localStorage.setObject(key, object);
localStorage.getObject(key);

このソリューションはほとんどのブラウザーで機能しますが、IE8 では機能しません。

Storage.prototype.setObject = function(key, value) {
    this[key] = JSON.stringify(value);
}

Storage.prototype.getObject = function(key) {
    return JSON.parse(this[key]);
}

いくつかの調査を行った後、Lawnchair.js を使用するか、別の方法で回避できるようです。しかし、なぜIE8で動作しないのか疑問に思っています。String と Array を拡張できます。なぜストレージではないのですか?IE8 で拡張できるオブジェクトと拡張できないオブジェクトを確認するにはどうすればよいですか?

4

1 に答える 1

2

これはIEです。DOM要素を拡張することもできません。時々本当に-本当に関数を呼び出す必要がある場合は、を介してそれを行うことができますStorage.prototype.getObject.call(localStorage, 'hello')

また、組み込みオブジェクトを拡張することは良いこととは見なされません。

于 2012-05-09T11:26:04.160 に答える