2012-03-13 7 views
0

J'ai besoin de suivre une liste de 25 favoris qui sont ajoutés à partir d'une liste de ~ 100 entrées. Ces favoris seraient dans une liste de direListe des favoris persistants

  • "favori 1"
  • "favori 2"
  • "favori 3" .... ainsi de suite

et je besoin d'eux être stocké de manière persistante. Je voudrais également qu'ils puissent être supprimés et remplacés par une autre valeur de chaîne préférée. J'ai regardé How do I store an array in localStorage? mais cela ne fonctionne pas pour moi parce que quand je déclare var names=[]; sur le fichier javascript, chaque fois que ma fonction favoris s'exécute elle redéclare le tableau et efface tout.

J'ai essayé de faire quelque chose comme:

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" 
    } 
} 

mon intention était de faire des variables localStorage de fav1, fav2, fav3 ... fav25 puis les gérer individuellement. Mais cela ne fonctionne pas puisque l'appel localStorage.favNumber = "x"; rend la variable de stockage local favNumber égale à "x" et non fav+i.

Je n'ai plus d'idées en ce moment; J'ai regardé http://playground.html5rocks.com/#async_transactions pour essayer d'employer une base de données de HTML5 mais je suis très nouveau au développement de Web et il semble un peu trop pour ce que j'essaye de faire. Est-ce que quelqu'un sait comment résoudre ce problème? Toute information serait utile.

+0

Vous devez utiliser localStorage ["fav" + i] = "x"; – vireshas

Répondre

0

Cela pourrait aider. Je les utilise pour stocker des informations dans le stockage local avec sauvegarde de 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); 
      } 
     } 
    } 
} 
Questions connexes