jquerycookie.js配列で保存

2015年6月16日更新 view: 331 view

以下の方法だとうまく動かないので、
http://d.hatena.ne.jp/sutara_lumpur/20121128/1354070483
を参考にして下さい

photoBy: http://colorcurtain.fukufuku.in/050100139_g_011_bt_cookie_ch_600.jpg

配列で保存するには?

jquerycookie.jsは配列で保存できないみたい。 なので、

一旦配列をシリアライズして保存。 また、読み込み時にシリアライズを配列化して読み込み。 で対応する。

方法

<script type="text/javascript">
var parseUrl = 'http://www.hoge.co.jp';
$(function() {

jQuery.extend({
  stringify : function stringify(obj) {
   var t = typeof (obj);
   if (t != "object" || obj === null) {
    // simple data type
    if (t == "string") {
     obj = '"' + obj + '"';
    }
    return String(obj);
   }
   else {
    // recurse array or object
    var n, v, json = [], arr = (obj && obj.constructor == Array);
 
    for (n in obj) {
     v = obj[n];
     t = typeof(v);
     if (obj.hasOwnProperty(n)) {
      if (t == "string") {
       v = '"' + v + '"';
      }
      else if (t == "object" && v !== null) {
       v = jQuery.stringify(v);
      }
      json.push((arr ? "" : '"' + n + '":') + String(v));
     }
    }
    return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
   }
  }
});



if($.cookie("siteList")){
  siteList = $.cookie("siteList");
  siteList = $.parseJSON(siteList);//jsonを配列に
} else {
  siteList = new Array();
}

//新規追加
siteList.push(parseUrl);//配列先頭に追加

//配列をjsonにして上書き
$.cookie("siteList",$.stringify(siteList), { expires: 700 });

});
</script>
スポンサードリンク

これで配列で保存できます。

スポンサードリンク

関連記事

関連カテゴリ

コロ助

web関連の記事や制作系の記事をどんどんまとめていきます。 宜しくお願いします!

ピックアップ

パソコン・ソフトウェア ランキング

8月18日 ( 土 ) にアクセスが多かった記事はこちら!