I just learned about jquery's .makeArray et j'essaye d'utiliser JSON.stringify pour stocker le tableau dans localStorage mais j'ai des résultats inattendus.Stocker un tableau dans localStorage en utilisant JSON.stringify
Cela fonctionne:
var links = {'one': 1, 'two': 2 };
var setstr = JSON.stringify(links);
localStorage.setItem('strlinks', setstr);
var getstr = localStorage.getItem('strlinks');
console.log(getstr); //Returns what's expected - '{"one":1, "two":2}'
Cela ne signifie pas:
var links = $.makeArray($('a'));
alert(links); //Returns list of links
var setstr = JSON.stringify(links);
localStorage.setItem('strlinks', setstr);
var getstr = localStorage.getItem('strlinks');
console.log(getstr); //Returns '[]'
Toutes les idées sur ce que je fais mal?
Peut-être que j'aboie le mauvais arbre mais c'est pour une extension de chrome. Ma pensée était d'ajouter le tableau à localStorage à partir d'un script de contenu, puis lorsque l'utilisateur clique sur l'icône du navigateur, faites défiler les liens et affichez-les dans un popup. Je suis nouveau pour les extensions de chrome, mais je crois comprendre qu'un popup ne peut pas accéder directement aux variables d'un script de contenu, d'où la nécessité d'un stockage local. Mais je pourrais être loin de la marque. – plntxt
Une référence à un lien ne peut pas être placée dans un 'String', la seule chose que' localStorage' va stocker. Mais le popup n'a pas besoin de toucher le lien lui-même, n'est-ce pas? Il suffit de connaître l'URL vers laquelle pointe le lien ('href'), sûrement? C'est seulement un 'String', donc certainement JSON-stringified. Pas que je pense que vous avez vraiment besoin de 'localStorage' du tout. Je ne connais pas Chrome, mais la plupart des extensions de navigateur ne devraient pas avoir de difficulté à ouvrir une nouvelle fenêtre et à la remplir avec une liste de chaînes, sans avoir besoin de médiation via n'importe quel type de base de données 'localStorage'. – bobince
Vous pouvez utiliser une page d'arrière-plan en tant que contrôleur et accéder aux valeurs stockées à partir de là. Voir le code de mon nouvel onglet Redirection pour des exemples (J'utilise JSON.stringify dans le code du tronc) http://code.google.com/p/newtabredirect/ –