2011-12-18 8 views
0

はここに私のバイオリンです:jsfiddle.net/XR8EZはのlocalStorageを動作させることはできません

私はロードボタンをクリックした後にロードするためにデータを保存することができません。誰も私をここで助けることができますか?

長さ= Dのため申し訳ありません。

+1

動作中のコード全体のhttp://jsfiddle.netデモを作成し、関連するコードのみを質問/問題に投稿してください。 –

+1

これはあまりにも多くのコードです。 –

+0

@ JaredFarrish - ヒーローフィドル:http://jsfiddle.net/XR8EZ/ 申し訳ありません。私の質問は、保存ボタンとロードボタンに当てはまります。目標は、キャンバスの状態(画像/図形など)を保存し、別の表示でそれをロードできるようにすることです。助けてください。 – dopatraman

答えて

1

ロードルーチンが間違っています。 すべてのデータ(stringifyed)をsetItem( 'serializedObj')で保存します。 次に、 "retrievedItem = localStorage.getItem( 'serializedObj');"で値を取得します。 "JSON.parse(retrievedItem);"の値は保存しません。 次に、localStorage.getItem(imgName)で直接値を取得しようとします。

あなたはretriveやデータを保存するには、parded:

dataparsed = JSON.parse(retrievedItem); 

次にあなたが値を取得するため、この値を使用する必要があります。

//Reconstruct the original image array 
for (i=0;i<totalState.length;i++) {       
    var thisParseImgVal = dataparsed.imgName;  
    totalImage[i] = JSON.parse(thisParseImgVal); 
} 

あなたが/ロード・コードを保存訂正する必要があり、私はあなたが保存することをお勧め配列としてあなたのデータ:

var imgVal = JSON.stringify(totalImage);       
var shpVal = JSON.stringify(totalShape); 
var hLval = JSON.stringify(totalHighlight); 
var str = {imgName:imgVal,shpName:shpVal,hLname:hLval}; //Store 

だから、としてそれを読まなければなりません

totalImage[i] = JSON.parse(thisParseImgVal[i]); 
+0

インラインコードとブロックコードをマークアップするには、エディタで '{}'を使用してください。これは読みやすさに非常に役立ちます。 ':)' –

+0

@ InuYaksa - あなたが私の 'str'バケットobj'(str = str + {...}) 'を削除したのを見ています。これにはどんな理由がありますか? – dopatraman

+0

配列を直接文字列化する場合は、ループを使用する必要はありません。 – InuYaksa

関連する問題