Question

Est-il possible de stocker des données d'une manière qui sera accessible après un redémarrage du navigateur dans le cadre d'une extension de chrome?

Était-ce utile?

La solution

Encore plus simple que cela:

A lire:

    var myStoredValue = localStorage["TheKeyToMyStoredValue"];

Pour écrire:

    localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;

Pour se débarrasser de:

    delete localStorage["TheKeyToMyStoredValue"];

Autres conseils

Oui, il est. Dépasser une soluce complète de la façon de le faire serait probablement dépasser la longueur d'une réponse raisonnable StackOverflow, donc je vais vous référer à ce tutoriel très complet par Rajdeep Dua.

Le code correspondant ressemblerait à ceci:

// 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 prend également en charge la spécification Database Web HTML5 . Cela vous donne une base de données SQL locale, de sorte que vous pouvez faire des choses plus complexes que le nom du simple stockage / paires de valeurs dans le stockage local.

La version actuelle du chrome a le stockage local.

Je l'ai utilisé moi-même. Vous pouvez utiliser Modernizr pour détecter si le navigateur prend en charge ou non. J'ai écrit une solution pour un client où je fais une solution de repli à cookie si aucun stockage local existe, mais cela ne devrait pas être un problème pour les extensions.

Aujourd'hui, il est peut-être préférable d'utiliser chrome.storage chrome.storage est asynchrone, ce qui le rend plus rapide et localStorage est limitée à 5 Mo.

il y a déjà quelques grandes réponses, mais sachez que si vous décidez d'utiliser un script de contenu dans votre extension, ce script de contenu ne sera pas avoir accès à localStorage. donc chrome.storage est une bonne alternative.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top