Имеют ли расширения Chrome доступ к локальному хранилищу?

StackOverflow https://stackoverflow.com/questions/2153070

Вопрос

Возможно ли хранить данные таким образом, чтобы они были доступны после перезагрузки браузера в контексте расширения Chrome?

Это было полезно?

Решение

Даже проще, чем это:

Читать:

    var myStoredValue = localStorage["TheKeyToMyStoredValue"];

Чтобы написать:

    localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;

, чтобы избавиться от:

    delete localStorage["TheKeyToMyStoredValue"];

Другие советы

Да, это так.Подробное пошаговое руководство о том, как это сделать, вероятно, превысило бы объем разумного ответа StackOverflow, поэтому я отсылаю вас к этот очень обширный учебник автор: Радждип Дуа.

Соответствующий код будет выглядеть следующим образом:

// 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);
  }
}

Chrome также поддерживает HTML5 Веб-база данных спецификация.Это дает вам локальную базу данных SQL, так что вы можете выполнять более сложные действия, чем простое хранение пар имя / значение в локальном хранилище.

Текущая версия Chrome имеет локальное хранилище.

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

В настоящее время, возможно, было бы лучше использовать chrome.хранилище chrome.storage является асинхронным, что делает его более быстрым, а localStorage ограничен 5 МБ.

здесь уже есть несколько отличных ответов, но обратите внимание, что если вы решите использовать скрипт содержимого в своем расширении, этот скрипт содержимого не будет иметь доступа к localStorage.следовательно chrome.хранилище это хорошая альтернатива.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top