名單

2012-03-13 53 views
0

我需要保持它由〜100個條目列表中所增加25個喜好列表的軌道。這些收藏會在列表說名單

  • 「收藏夾1」
  • 「收藏夾2」
  • 「喜好3」 ....等等

,我需要他們永久保存。我也會要求他們能夠被刪除並用另一個最喜歡的字符串值替換。我已經看過How do I store an array in localStorage?而是因爲當我的JavaScript文件中聲明var names=[];不工作對我來說,每一個收藏夾功能,它運行時redeclares數組並清除一切。

我試圖做這樣的事情:

function addToFav(string) 
{ 
    if (localStorage.fav1) // if fav1 was created before 
    { 
     alert("local storage fav1 present, don't make variables"); 
    } 
    else 
    { 
     alert('fav variables never made, make them now'); 
     var i=1; 
     for (i=1; i<=25; i++) 
     { 
      var favNumber = "fav" + i; 
      localStorage.favNumber = "x"; 
     } 
     alert(localStorage.fav1);     // outputs "undefined" 
    } 
} 

這是我打算做的fav1fav2fav3 ... fav25 localStorage的變量,然後對其單獨進行管理。但是,這並不工作,因爲調用localStorage.favNumber = "x";使得本地存儲變量favNumber等於"x"而不是fav+i

我走了,此刻的想法;我已經看過http://playground.html5rocks.com/#async_transactions使用HTML5數據庫來嘗試,但我很新的Web開發,似乎有點太多了我想要做的事。有誰知道如何解決這個問題?任何信息都有幫助。

+0

我們使用localStorage [「fav」+ i] =「x」; – vireshas 2012-03-13 20:52:29

回答

0

這可能會有幫助。我使用這些存儲信息在本地存儲與Cookie備份...

function setLocalStorage(c_name, value) { 
    var exdays = 30; 
    // if localStorage is present, use that 
    if (('localStorage' in window) && window.localStorage !== null) { 
     localStorage[c_name] = value; 
    } else { 
     var exdate = new Date(); 
     exdate.setDate(exdate.getDate() + exdays); 
     var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" +  exdate.toUTCString()); 
     document.cookie = c_name + "=" + c_value; 
    } 
} 

function getLocalStorage(c_name) { 
    // if localStorage is present, use that 
    if (('localStorage' in window) && window.localStorage !== null) { 
     return localStorage[c_name]; 
    } else { 
     var i, x, y, ARRcookies = document.cookie.split(";"); 
     for (i = 0; i < ARRcookies.length; i++) { 
      x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); 
      y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 
      x = x.replace(/^\s+|\s+$/g, ""); 
      if (x == c_name) { 
       return unescape(y); 
      } 
     } 
    } 
}