jQueryでaddClassして、それをlocalStorageに保存したものの、ファイルを開いても、実行されません。(ローカルストレージに入ってはいるものの…)

.small {
font-size:0.5em;
}
<div id="text">aaaa</div>
<input type="button" value="小" id="small"/>

以下Javascript 

$(function(){
window.localStorage["font_size"];
});

$("#small").click(function(){
$("#text").removeClass();
localStorage.setItem("font_size", $("#text").addClass("small"));
});

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/10/05 12:34:46
  • 終了:2011/10/06 11:23:57

ベストアンサー

id:Cherenkov No.2

Cherenkov回答回数1502ベストアンサー獲得回数4922011/10/05 16:04:24

ポイント80pt

オブジェクトの保存はできないので、

localStorage.setItem("font_size", '$("#text").addClass("small")');

のように文字列で保存して、

eval(localStorage["font_size"]);

でevalを使えば希望の動作になります。(セキュリティを考慮する必要がある)


もしくはevalを使わずに、セレクタとクラス名の連想配列やJSONをlocalStorageに保存して取り出し実行。

その他の回答(1件)

id:y-kawaz No.1

y-kawaz回答回数1420ベストアンサー獲得回数2252011/10/05 12:44:36

ポイント20pt

そのコードには保存された内容を表示するようなコードなどが特に無いようですが、実行されないってのは何が実行されないのでしょうか?

また localStrage に何を保存したいのかもわかりません。localStrageには文字列しか保存できないはずなので、それだと "[object Object]" とかの文字列が保存されるだけじゃないでしょうか?


根本的に何か色々勘違いされているように思います。

id:goodbabies

つまり、objectはlocalstrageに保存することはできないのですね。

2011/10/05 13:56:02
id:Cherenkov No.2

Cherenkov回答回数1502ベストアンサー獲得回数4922011/10/05 16:04:24ここでベストアンサー

ポイント80pt

オブジェクトの保存はできないので、

localStorage.setItem("font_size", '$("#text").addClass("small")');

のように文字列で保存して、

eval(localStorage["font_size"]);

でevalを使えば希望の動作になります。(セキュリティを考慮する必要がある)


もしくはevalを使わずに、セレクタとクラス名の連想配列やJSONをlocalStorageに保存して取り出し実行。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません