Действительно ли возможно хранить данные способом, которые будут доступны после перезапуска браузера в контексте хромового расширения?
Еще проще:
Прочитать:
var myStoredValue = localStorage["TheKeyToMyStoredValue"];
Записать:
localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;
Избавиться от:
delete localStorage["TheKeyToMyStoredValue"];
Да, это. Переходя на полное прохождение того, как это сделать, вероятно, превысит продолжительность разумного ответа в стойке, поэтому я направим вас к этому очень обширному учебнику Rajdeep Dua.
Соответствующий код будет выглядеть так:
// Store item in local storage:
function setItem(key, value) {
try {
log("Storing [" + key + ":" + value + "]");
window.localStorage.removeItem(key); // <-- Local storage!
window.localStorage.setItem(key, value); // <-- Local storage!
} catch(e) {
log("Error inside setItem");
log(e);
}
log("Return from setItem" + key + ":" + value);
}
// Gets item from local storage with specified key.
function getItem(key) {
var value;
log('Retrieving key [' + key + ']');
try {
value = window.localStorage.getItem(key); // <-- Local storage!
}catch(e) {
log("Error inside getItem() for key:" + key);
log(e);
value = "null";
}
log("Returning value: " + value);
return value;
}
// Clears all key/value pairs in local storage.
function clearStrg() {
log('about to clear local storage');
window.localStorage.clear(); // <-- Local storage!
log('cleared');
}
function log(txt) {
if(logging) {
console.log(txt);
}
}
Текущая хромированная версия имеет локальное хранилище.
Я сам использовал это. Вы можете использовать Moderizr для обнаружения, поддерживает ли браузер или нет. Я написал решение для клиента, где я делаю неудачу для cookie, если не существует местного хранилища, но это не должно быть проблемой для расширений.
Chrome также поддерживает спецификацию веб-базы данных HTML5 . Это дает вам локальную базу данных SQL, поэтому вы можете делать более сложные вещи, чем просто хранить пары имя / значение в локальном хранилище.