2011-12-17 9 views
0

複数のオブジェクトと画像を移動させるキャンバスを作成しています。後で表示するためにローカルストレージに保存したいと思います。

私はjQueryの$.storageプラグインが理想的だと思いますが、複数のオブジェクトを保存する方法はわかりません。 jquery apiの構文は次のとおりです。

$.Storage.set({"name1":"value1", "name2":"value2", etc})` 

これは1つのオブジェクトに対してのみ有効です。引数リスト内に複数のオブジェクトを作成できますか?または、配列を格納するか?

+0

どの 'localStorage'プラグインですか?それは[this one](http://sites.google.com/site/daveschindler/jquery-html5-storage-plugin)ですか? –

+0

それがそうなら、「名前と値は文字列でなければならない。一部のブラウザでは文字列以外の値を受け入れるかもしれないが、すべてではない」したがって、実際には1つの名前を1つの(文字列)値に保存しています。 –

答えて

0

JSON文字列を作成して保存することができます。データを取得するときにJSONとして解析してオブジェクトを取得できます。そうすれば、オブジェクト内の単一要素に関するすべての情報を格納できます。

UPDATEここ

あなたはJSONにJavaScriptのオブジェクトを「文字列化」するために含めることができるツール(それはすでにこれを持っていないブラウザでこの機能が追加されます)です。https://github.com/douglascrockford/JSON-js

そして、あなたがしたい場合は、巣のオブジェクトができます。

var myObj = { 
     level_one : { 
      level_two : { 
       key : 'val' 
      }, 
      level_two_too : { 
       level_three : { 
        key : 'val' 
       } 
      } 
     }, 
     level_one_too : { 
      key : 'val' 
     } 
    }, 
    str = JSON.stringify(myObj); 

str変数は次のように文字列を保持します:

ここで
{"level_one":{"level_two":{"key":"val"},"level_two_too":{"level_three":{"key":"val"}}},"level_one_too":{"key":"val"}} 

デモです:http://jsfiddle.net/ycxcV/

UPDATE

だからあなた$.storage()関数呼び出しはこのようなものになるだろう。ここでは

$.Storage.set({"element-one":JSON.stringify($('#element-one')), "element-two":JSON.stringify($('#element-two'))}) 

が作成示し更新デモですJSON文字列を解析してオブジェクトに戻します:http://jsfiddle.net/ycxcV/1/ jQueryオブジェクトを保存します。ローカルストレージの#element-one#element-two DOM要素に関連付けられています。

+0

@ジャスパー - これは1つのオブジェクトにしか当てはまりませんが、そうですか? JSON文字列を複数のオブジェクトに使用するにはどうすればよいですか? – dopatraman

+1

@codeninja - '.set()'関数にオブジェクトを渡さなければならないように見えますが、そのオブジェクトはそのオブジェクトで動作します。ジャスパーが言っていることは、JSONフォーマットの文字列をキー/値のペアの1つの値として渡すことができ、その文字列をその名前で保存し、それを取得して元のJSオブジェクト。 –

+0

@ JaredFarrish - あなたが意味するものの例を提供してもよろしいですか?私はJSONに精通していないので、まだ少し失われています... – dopatraman

関連する問題