2016-03-18 3 views
0

У меня есть расширение chrome, которое создает контекстные меню с данными, полученными из массива, хранящегося в chrome.storage. Этот массив обновляется на странице options.html.Chrome.storage.sync перезаписывается при перезагрузке расширения

Создатель контекстного меню отлично работает, но когда я открываю страницу параметров и пытаюсь вставить новое значение в массив после перезагрузки расширения, оно перезаписывается, теряя прежние значения. ¿Есть ли какое-нибудь решение? Редактировать 1 Для уточнения. Хранилище сохраняется, но когда я пытаюсь что-то вставить в массив, он перезаписывает весь массив.

Edit2
Options.html

function save_options() { 
    var id = document.getElementById('id').value; 
    ids.push(id); 

    chrome.storage.sync.set({ 
     'movieId': ids 
    }, function() { 
     // Feedback 
     var status = document.getElementById('status'); 
     status.textContent = 'Options saved.'; 
     setTimeout(function() { 
      status.textContent = ''; 
     }, 750); 
    }); 
    createRow(1); 
} 

Вот код я использую для обновления массива.

+0

Вы удаляете и повторно добавляете расширение или нажав кнопку перезагрузки на chrome: // расширениях? Перезагрузка должна содержать хромовое хранилище, тогда как удаление и повторное добавление очистят его. – Brian

+0

Я перезаряжаю расширение, и закрывающий хром дает тот же результат. Хранилище сохраняется, но когда я пытаюсь что-то вставить в массив, он перезаписывает весь массив. – cargide

+1

Похоже, что вы неправильно обращаетесь к хранилищу, вероятно, это не имеет никакого отношения к перезагрузке. Вам нужно будет предоставить подробную информацию о том, как вы используете хранилище для тех, кто может помочь. – Brian

ответ

0

Как @BenjaminGruenbaum сказал, я делал var ids = [] удаление предыдущих сохраненных данных. Просто стирая его, код работал.