Список местных хранилищ - PullRequest
2 голосов
/ 15 мая 2010

Я сделал свою собственную функцию, используя это:

function save(title, url)
{
 for (var i = 1; i < localStorage.length; i++) 
 {
  localStorage["saved-title_" + i + ""] = title;
  localStorage["saved-url_" + i + ""] = url;
 } 
}

function listFavs()
{
 for (var i = 1; i < localStorage.length; i++) {
    console.log(localStorage["saved-fav-title_" + i + ""]);
 }
}

save () происходит, когда кто-то нажимает на это:

onclick="save(\'' + title + '\', \'' + tab.url + '\');"> ' + title + '</a>';

Однако ... он не показывает сохраненные локальные хранилища, как мне заставить его работать?

1 Ответ

4 голосов
/ 15 мая 2010

Может быть потому, что вы используете ключ 'saved-title_' + i для сохранения значения и 'saved-fav-title_' + i для его получения?

Разница в части fav- .

И ваше перечисление localStorage обязательно приведет к ошибкам, поскольку нет гарантии, что у всех элементов в нем есть ключ, который соответствует предоставленному шаблону 'saved-fav-title_' + i - на самом деле это гарантированно не так, как вы сами вводите элементы с ключами в виде 'saved-url_'+ i.

Итак, если вы хотите правильно перечислить элементы с ключом, соответствующим шаблону, используйте

function listFavs(){
    var key;
    for (var i = 0, len = localStorage.length; i < len; i++){
        key = localStorage.key(i);
        if ((/^saved-fav-title_/).test(key)) {
            console.log(localStorage.getItem(key);
        }
   }
}
...