2015-06-09 2 views
0

Я пытаюсь использовать локальное хранилище для хранения некоторых объектов текстуры, но он, похоже, не работает.Javascript: localStorage.getItem (ключ) не работает

for (var i = 0; i < 6; i++) { 
    localStorage.setItem("name" + i, Transition.blurPano.getTexture(path + img_name[i] + ".jpg", dfrd[i], true, i)); 

    console.log(localStorage.getItem("name" + i) == Transition.blurPano.getTexture(path + img_name[i] + ".jpg", dfrd[i], true, i)); 

     Transition.blurPano.mesh.material.materials[i].map = localStorage.getItem("name" + i); 
    } 

Здесь я пытаюсь сохранить ключевую пару значений в локальном хранилище с key = "name" + i и значением является объектом текстуры, который возвращается функцией gettexture, но это не похоже на работу.

ответ

3

Нельзя хранить объекты в localstorage напрямую. Обходной может быть stringify ваш объект перед сохранением, а затем разобрать его, когда вы извлекаете его:

var name = { 'first': 1, 'second': 2, 'third': 3 }; 

// Put the object into storage 
localStorage.setItem('name', JSON.stringify(name)); 

// Retrieve the object from storage 
var retrievedObject = JSON.parse(localStorage.getItem('name')); 
+0

Это решение не работает. Он дает ошибку 'Uncaught SyntaxError: Неожиданный токен o' –

+0

Вы получаете эту ошибку, потому что ответ уже разобран. Попробуйте восстановить сохраненный объект без использования JSON.parse ... Это будет работать :) – AkshayJ

Смежные вопросы